自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 迷宫问题 XDOJ

一组数据,输入数据第1行为两个正整数m和n,m表示迷宫高度,n表示迷宫宽度,m<100,n<100;第3为两个整数,分别表示终点的行列位置;其后为m行数据,每行n个整数,表示迷宫对应位置的状态,0表示通路,1表示障碍。其中三元组中的(i,j)表示迷宫中的一个坐标,d表示走到下一坐标的方向,d=1表示向右走,d=2为向下走,d=3为向左走,d=4为向上走。以一个m*n的长方阵表示迷宫,0和1分别表示迷宫的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。

2025-02-11 17:54:49 325 1

原创 输出螺旋方阵

题目:输出螺旋方阵 问题描述 螺旋方阵是指一个呈螺旋状的矩阵,它的数字由第一行开始到右边不断变大,向下变 大,向左变大,向上变大,下面是一个5*5阶的螺旋方阵。输入螺旋方阵的阶数N,按行 输出该螺旋方阵。printf中的格式字符%md,m指定输出最小宽度,m<0为左对齐。按行输出N阶螺旋方阵的元素,每个元素最小宽度4个字符,左对齐。输入一个正整数N(1<N<=10)。

2025-02-07 10:12:52 292

原创 判断堆栈出栈序列是否有效 XDOJ

如果以序列“1,2,3,4”作为一个栈(初始为空)的输入,那么可得到输出序列“1,2,3,4”或“4,3,2,1”或“2,3,1,4”等等,但是肯定得不到输出序列“4,1,2,3”或“3,1,2,4”等等。请编写一个程序,判断能否通过一个栈得到给定的输出序列。每组数据由两行构成,第一行只有一个整数n(<10),表示序列长度,同时表示栈的输入序列为“1,2,3,…第二行为n个整数,表示需要判断的出栈序列,整数之间以空格分隔。输出一个yes或no(表示能否通过栈得到该序列)。根据栈的后进先出特性进行判断。

2025-01-24 13:09:09 270

原创 最长重复子串长度

给定一个字符串,找出其中最长的重复出现的子串的长度。例如,对于字符串 “abababc”,最长的重复出现的子串是 “ab”,长度为 2;对于字符串 “aaaa”,最长的重复出现的子串是 “aaaa”,长度为 4。这是我让豆包AI出的题,做的可能不完全正确,希望大家指正。每组数据为一个字符串,字符串长度不超过 100。输出每组字符串中最长重复出现子串的长度。题目一:最长重复子串长度。

2025-01-23 18:04:23 235

原创 中心对称的字符串

对于有n个字符的字符串,设计算法判断字符串是否中心对称。例如,xyzzyx和xyzyx都是中心对称的字符串。每组数据有2行:第一行为整数n,表示字符的个数,n小于100;第二行为n个字符组成的字符串。判断这个字符串是否是中心对称的,是输出“YES”,不是输出“NO”。这道题是比较简单的,有一个疏漏是,我觉得不用输入字符串的个数n。

2025-01-22 09:22:10 160

原创 报数出列问题 XDOJ

报数出列问题。

2025-01-21 18:40:41 443

原创 有序表的合并去重

第一行输入两个正整数a,b,分别表示第一个线性表L1和第二个线性表L2的长度;第2行依次输入L1中单调增的a个正整数;第3行依次输入L2中单调增的b个正整数。正整数均小于10000。共有1行,最终合并并去重后的结果,每个数字之间有一个空格。,每个线性表中数据元素的值为单调增的正整数(中数据元素的值仍为单调递增,且无重复元素。个),各线性表内部无重复元素。

2025-01-20 17:42:51 277

原创 链表去重 XDOJ

测试样例:输入样例100100 5输出样例1399999 7 -1。

2025-01-17 19:04:43 286

原创 一元稀疏多项式计算器

每组数据有3行构成,第1行为3个正整数n,m,t, n表示第一个多项式的项数,m表示第二个多项式的项数,t表示运算类型,0为加法,1为减法,每组数据的第2行包含2n个整数,每两个整数分别表示第一个多项式每一项的系数和指数;第3行包含2m个整数,每两个整数分别表示第二个多项式每一项的系数和指数。您提供的代码实现了一元稀疏多项式的加减运算,但存在一些逻辑错误和潜在的问题。: 虽然代码在最后释放了动态分配的内存,但更推荐使用现代 C++ 的容器(如。这道题的思路:借鉴归并算法,将两个多项式合并成一个多项式。

2025-01-13 21:55:59 383

原创 判断有向图中是否有环

题目:判断有向图中是否有环问题描述判断有向图中是否有环。输入格式输入数据第一行是一个正整数,表示n个有向图,其余数据分成n组,每组第一个为一个整数,表示图中的顶点个数n,顶点数不超过100,之后为有向图的邻接矩阵。输出格式输出结果为一行,如果有环,则输出1,如果无环,则输出0。按顺序输出这n个有向图的判断结果,前后结果的输出不加空格。样例输入320 10 030 1 10 0 00 0 040 1 0 00 0 0 10 0 0 11 0 0 0样例输出001。

2024-12-30 15:38:30 410

原创 图的深度优先遍历

已知无向图的邻接矩阵,以该矩阵为基础,给出深度优先搜索遍历序列,并且给出该无向图的连通分量的个数。在遍历时,当有多个点可选时,优先选择编号小的顶点。(即从顶点1开始进行遍历)第一行输出为无向图的深度优先搜索遍历序列,输出为顶点编号,顶点编号之间用空格隔开;第二行为无向图的连通分量的个数。第一行是1个正整数,为顶点个数n(n

2024-12-30 11:37:48 204

原创 图的广度优先遍历 XDOJ

已知无向图的邻接矩阵,以该矩阵为基础,给出广度优先搜索遍历序列,并且给出该无向图的连通分量的个数。在遍历时,当有多个点可选时,优先选择编号小的顶点。(即从顶点1开始进行遍历)第一行输出为无向图的广度优先搜索遍历序列,输出为顶点编号,顶点编号之间用空格隔开;第二行为无向图的连通分量的个数。第一行是1个正整数,为顶点个数n(n

2024-12-30 00:19:54 184

原创 高铁网络 XDOJ

国家建设高铁网络,网络由一些连接城市的高铁线路构成。现有高铁建设情况可列为一张统计表,表中列出了每一条高铁线路直接连接的两个城市。国家的建设目标是全国每两个城市之间都可以实现高铁交通(但不一定有直接的高铁线路相连,只要能间接通过高铁线路可达即可)。测试用例的第1行给出两个正整数,分别是城市数目N(

2024-12-29 21:42:58 239

原创 输出快速排序递归算法隐含递归树的后序遍历序列

注意:快速排序递归结束条件为递归的子表中仅剩一个元素,这个元素在本题得到后序遍历序列需要保存。快速排序递归算法隐含一棵由关键字生成的二叉树(递归树),输出该隐含二叉树的后序遍历序列。这道题我们首先需要知道的是快速排序的结果是中序遍历序列,我们可以在递归过程中保存每次的枢轴位置,即对应二叉树的根节点。输入数据第一行为1个正整数n,表示关键字个数。第2行为n个整数表示n个关键字。在快速排序的过程中输出隐含二叉树的后序遍历序列,不用生成二叉树。在一行上输出由关键字隐含的二叉树的后序遍历序列。

2024-12-29 20:47:18 211

原创 输出完全二叉树的某一层 XDOJ

每组数据第一行输入一个结点数n(1<=n<=1000),第二行将树中的这n个节点依次输入(每个结点存储的数据是一个数字),n个结点编号方式是层间从上到下、层内从左到右依次编号;考察完全二叉树:设双亲结点位置为i(下标从1开始),在数组中存储,左孩子结点位置为2*i,右孩子位置为2*i+1。该完全二叉树的第一层是1,第二层是2 3,第三层是4;题目要求输出第二层,则输出2 3。对一棵完全二叉树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY。,用while(1)循环,当输入n=0时结束循环。

2024-12-22 15:52:29 257

原创 二叉树扩展先序遍历转中序遍历 XDOJ

编一个程序,读入用户输入的一串扩展先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。例如如下的扩展先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。输出将输入字符串建立二叉树后中序遍历的序列,每个字符后面都有一个空格。每个输出结果占一行。根据给定的扩展先序遍历序列,建立对应的二叉树,然后对所得的二叉树进行中序遍历输出结果即可。输入包括1行字符串,长度不超过100。

2024-12-22 10:54:41 235

原创 二叉树的不同形态 XDOJ

思路:不断递归,取出更深层的层次遍历序列以及先序遍历序列,再次递归,在递归过程中将根节点保存到先序序列和后序序列中。需要注意的是,先序序列的顺序为根左右,因此先将根保存到先序序列中,再递归左子树、右子树;给定二叉树T(树深度H<=10,深度从1开始,结点个数N<1024,结点编号1~N)的层次遍历序列和中序遍历序列,输出T从左向右叶子结点以及二叉树先序和后序遍历序列。输入共三行:第一行是整数n,表示二叉树中的结点数目;输出三行,分别是:从左向右的叶子结点,先序遍历序列,后序遍历序列。结点编号用空格隔开。

2024-12-21 22:34:56 230

原创 二叉树遍历 XDOJ

使用递归函数,可以想到,根据先序序列以及中序序列将根节点找出。在中序序列中,根节点前的序列是树的左子树的中序遍历学列,并依此从先序序列中找出左子树的先序序列(右子树的遍历序列同理),将新的到的先序以及中序序列作为参数传入递归函数,重复上述操作,直到只剩下1个元素,输出该元素,结束循环。在递归函数中,每次将左右子树遍历序列递归后,将根节点打印。输入数据有两行,为两个字符串,其长度n均小于等于26。第一行为先序遍历序列,第二行为中序遍历序列。给定一棵二叉树的先序遍历和中序遍历序列,求其后序遍历序列。

2024-12-21 21:08:04 311

原创 Huffman编码 XDOJ

需要注意的是Select函数,在HT前k个元素中选择出两个最小值算法,这个比较简单,但是有一些小点需要注意,比如先要给s1、s2赋值,我首先考虑的是s1=s2=1,但是运行时出现了一些问题;然后我尝试了s1=1,s2=2,也不能得到正确结果;最后利用了HT中未用到的0号位置,s1=s2=0,最终得到正确答案。代码中构建Huffman树参考了 严蔚敏《数据结构(C语言版 第2版)》 中构建Huffman树部分,其他的代码读者可以参考注释。一组数据,第1行为n的值,第2行为n个整数,表示字符的出现频度。

2024-12-20 23:38:04 188

原创 约瑟夫环 XDOJ

编号为1,2,...,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。现在给定一个随机数m>0,从编号为1的人开始,按顺时针方向1开始顺序报数,报到m时停止。报m的人出圈,同时留下他的密码作为新的m值,从他在顺时针方向上的下一个人开始,重新从1开始报数,如此下去,直至所有的人全部出圈为止。输入数据第一行为两个正整数n和m,分别表示人的个数及初始随机数,每组数据的第二行为n个整数,表示每个人持有的密码。代码使用了带头结点的链表,头节点中的数据域中保存了链表的数据数量。使用不带头节点的循环链表。

2024-12-15 22:59:11 287

原创 求矩阵中的马鞍点

所设计的程序能够通过编译。若矩阵A (m*n) 中的某个元素 是第i行中的最小值,同时又是第j列中的最大值,则称此元素为该矩阵中的一个马鞍点。编写程序求出矩阵中的所有马鞍点。输出矩阵中的所有马鞍点,输出顺序:行序优先,按行、列序号递增顺序输出。i,j,a(i*j)马鞍点的题我设计了一个judge()函数来进行判断,思路可以看代码中的注释。,若有多个马鞍点,每个马鞍点一行。也可能没有马鞍点,则输出NO。首先输入两个整数n和m,为矩阵维数,然后输入矩阵的值。题目转载XDOJ,如果侵权,请联系我删除。

2024-11-26 21:03:51 446

原创 855 XDOJ 矩阵加法运算

我是想着将b1[][]、b2[][]先加和成b3[][];然后根据v1[]、v2[]加和成v3[]时,将v3[]=0时,对应b3[][]上的值改为0,最终得到输出。我这道题做的是比较迷迷糊糊的,刚开始以为是道简单题,但是由于我想的思路编程实现较难,做起来还是磕磕绊绊的,我这个写题思路大家可以参考,但是真不建议采纳。首先输入两个整数n和m,为矩阵维数,然后输入两个矩阵的值B1、V1和B2、V2。编程实现上述表示法的矩阵加法运算。输出矩阵运算结果B、V。

2024-11-25 20:46:26 350 1

原创 825 中心对称的字符串

对于有n个字符的字符串,设计算法判断字符串是否中心对称。例如,xyzzyx和xyzyx都是中心对称的字符串。每组数据有2行:第一行为整数n,表示字符的个数,n小于100;第二行为n个字符组成的字符串。这题思路很简单,用字符串数组接收字符串,判断i和n-1-i位置的字符是否相等。判断这个字符串是否是中心对称的,是输出“YES”,不是输出“NO”。

2024-11-25 17:00:26 240

原创 826 XDOJ 最小周期串

如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。输入一个长度不超过80的串,输出它的最小周期。通过函数match函数判断字串是否可以作为原串的周期串,匹配方法思路与BP算法类似。将原串输入后,通过遍历依次从前往后取长度为i的子串(i可以被原串长度整除);输出每组字符串的最小周期。每组数据为一个字符串。

2024-11-25 16:57:34 268

原创 824 XDOJ 奇偶序列

用nums[]存储输入的数字序列,用num[]存储输出的数字序列,用两个for循环,遍历两次nums[]数组,将数组中奇数位置的节点放在num[]前半部分,偶数位置的节点放在num[]后半部分。输入共两行,第一行是一个正整数n,表示序列长度,n<100。第二行是n个整数,中间用空格隔开,表示序列中的元素。在一行上输出新生成的序列,数字中间用空格隔开。

2024-11-25 16:51:14 233

原创 823 XDOJ 报数出列问题

可以使用队列,每次操作时对队列中元素进行判断,不需要舍弃的就重新加入队列;要求输出此时队列中剩下的人在初始队列中的编号。输出队列中剩下的人在初始队列中的编号,编号之间有一个空格。一个正整数N,表示初始人数,N≤5000。已知N个人(以编号1,2,3。

2024-11-25 16:45:03 285

原创 746 XDOJ 有序表的合并去重

首先遍历L1以及L2,当L1[i]<L2[j]时,将L1[i]赋值给L3[k];L1[i]>L2[j]时,将L2[j]赋值给L3[k];L1[i]=L2[j]时,将L1[i]赋值给L3[k](实现去重);第3行依次输入L2中单调增的b个正整数。的值为单调增的正整数(<100个),各线性表内部无重复元素。把L2中的元素合并到L1中,要求L1中数据。有序表的合并去重可以通过设三个指针i,j,k分别指向L1、L2和合并后的L3;当L1、L2中的一个遍历结束后,将另一个有序表中剩下的元素直接插入L3。

2024-11-25 16:42:53 234

原创 745 XDOJ 链表去重

(1)该题需采用数组进行存储(用结构体数组,一个指针域、一个数据域);或者像我写的一样用二维数组,一维存储数据、一维存储指针。,这个你们可以看看便于理解,但是不用把这个里面的内容全部理解,用的时候找一下就行,现在网络是十分方便的。(3)节点的指针(除尾指针外均有5位)直接输出的话‘00000’会输出为‘0’,所以使用%05d。(2)删除结点时需要进行指针的移动;

2024-11-25 14:22:32 339

原创 753 XDOJ 括号匹配检测

括号匹配检测假设表达式中只包含三种括号:圆括号、方括号和花括号。对输入的一串由括号组成的字符串,判断其匹配情况,如([{}])或({[][()]})等均为匹配,而{[]})}或{[()]或([]}均为不匹配;若括号可以成功匹配,则输出yes,否则输出no。输入格式:测试数据有多组,第一行包含一个整数T(1≤T≤100),表示测试字符串的数量。对于每组测试,输入一个由圆、方、花括号符构成的字符串(长度不超过30)。输出格式:对于每组测试,若括号可以成功匹配,则输出yes,否则输出no。输入

2024-11-25 11:53:23 339

原创 731 XDOJ 魔王语言解释

有一个魔王总是使用自已的一种非常精练而抽象的语言讲话,没有人能听得懂。基本要求:设大写字母表示魔王语言的词汇,小写字母表示人的词汇,希腊字母表示可以用大写字母或小写字母代换的变量。用下述两种规则和下述规则(2)实现。这道题我提交以后只能得到80分,应该还有一些小漏洞,不过可以给各位大佬提供一些解题思路,你们应该比我做的更好。在这两种形式中,从左到右均表示解释;从右到左均表示抽象。一组数据,数据为一个字符串,表示一个待翻译的字符串。写一个魔王解释程序,将魔王的话解释成人能听懂的话。将字符串按规则翻译后输出。

2024-11-25 11:40:18 378

原创 854 XDOJ 后缀表达式求值

对逆波兰式(即后缀表达式)求值。如(4+5)*2-3的逆波兰式为45+2*3-。我使用了一个数组nums[]来充当栈,当判断为操作数时,将操作数对应的整型数压入栈;当判断为运算符时,弹出两个操作数,进行运算,运算结果需要再次压入栈中。这道题比数据结构(C语言版 第二版)中栈的部分算法3.22 表达式求值要简单许多,但是课本中的题更加经典,大家要多加理解。一个字符串表示的逆波兰式,如:45+2*3-,表达式的长度不超过100。可采用栈为辅助存储结构,碰到操作数则入栈,碰到操作符则连续两次出栈,然后进行计算。

2024-11-25 11:34:26 264

原创 输出螺纹方阵C语言

题目:输出螺旋方阵 问题描述 螺旋方阵是指一个呈螺旋状的矩阵,它的数字由第一行开始到右边不断变大,向下变 大,向左变大,向上变大,下面是一个5*5阶的螺旋方阵。输入螺旋方阵的阶数N,按行 输出该螺旋方阵。

2024-02-02 13:02:47 391

原创 0-1矩阵C语言

输入第一行为两个整数m和n(0

2024-02-01 12:31:26 546 1

原创 C语言马鞍点

在一行上输出马鞍点的行号、列号(行号和列号从0开始计数)及元素的值(用一个空格分隔),之后换行;输入数据第一行只有两个整数m和n(0

2024-02-01 10:17:33 579 1

原创 Z字形扫描C语言

在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan)。给定一个m×n的矩阵,Z字形扫描的过程如下图所示。数据的第一行为整数n(n

2024-01-31 12:15:11 901 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除