- 博客(34)
- 收藏
- 关注
原创 xdoj737输出快速排序递归算法隐含递归树的后序遍历序列
快速排序递归算法隐含一棵由关键字生成的二叉树(递归树),输出该隐含二叉树的后序遍历序列。(注:划分时以第一关键字为枢轴)输入数据第一行为1个正整数n,表示关键字个数。第2行为n个整数表示n个关键字。在快速排序的过程中输出隐含二叉树的后序遍历序列,不用生成二叉树。在一行上输出由关键字隐含的二叉树的后序遍历序列。
2024-12-24 00:07:20
329
原创 xdoj878网络时延
给定一个二维数组times[M][3],表示信号经过有向边的传递时间。times[i][3] = {u, v, w}, 其中u是源节点,v是目标节点,w是一个信号从源节点传递到目标节点的时间,即二维数组中的一行表示一条带权有向边。如果不能使所有节点收到信号,返回-1。多行输入数据,第1行为3个正整数,分别是M,N,K。接下来有M行,每行有3个正整数,分别是u, v, w。输出一个数,表示需要多久才能使所有节点都收到信号。如果不能使所有节点收到信号,返回-1。有N个网络节点,标记为1到N。
2024-12-24 00:07:09
410
原创 xdoj880判断有向图中是否有环
输入数据第一行是一个正整数,表示n个有向图,其余数据分成n组,每组第一个为一个整数,表示图中的顶点个数n,顶点数不超过100,之后为有向图的邻接矩阵。输出结果为一行,如果有环,则输出1,如果无环,则输出0。按顺序输出这n个有向图的判断结果,前后结果的输出不加空格。题目:判断有向图中是否有环。判断有向图中是否有环。
2024-12-24 00:06:55
276
原创 xdoj736哈希表
若输入的关键字在哈希表中不存在,则判断当前哈希表中关键字的个数是否等于m-1,若相等,则输出“Table full”,程序结束;否则将关键字插入哈希表,并输出该关键字插入在哈希表中的位置,继续等待输入下一个关键字。输入数据第一行为两个正整数分别为:哈希表表长m(m<100)和除数p(p<=m)。后面每一行是一个整数关键字,以-1作为输入的结束。若输入的关键字在哈希表中已存在,则输出该关键字在哈希表中的位置,继续等待输入下一个关键字。用除留余数法和线性探测再散列的冲突解决方法构造哈希表。
2024-12-24 00:06:30
390
原创 xdoj873高铁网络
国家建设高铁网络,网络由一些连接城市的高铁线路构成。现有高铁建设情况可列为一张统计表,表中列出了每一条高铁线路直接连接的两个城市。国家的建设目标是全国每两个城市之间都可以实现高铁交通(但不一定有直接的高铁线路相连,只要能间接通过高铁线路可达即可)。问最少还要建设多少条高铁线路?测试用例的第1行给出两个正整数,分别是城市数目N(<1000)和现有高铁线路数目M。随后的M行对应M条高铁线路,每行给出一对正整数,分别是该条高铁线路直接连接的两个城市的编号。在一行上输出最少还需要建设多少条高铁线路。
2024-12-23 00:36:37
295
原创 xdoj874关键路径
输入数据第一行是一个正整数,表示图中的顶点个数n(顶点将分别按0,1,…,n-1进行编号),顶点数不超过100,其中0为源点,n-1为汇点。之后的n行每行都包含n个整数,为AOE-网的邻接矩阵,其中0表示两个顶点间无直接可达的弧,大于0的整数表示活动持续的时间。输出AOE-网中关键路径的长度,如果网中有环,则输出“NO”。计算AOE-网中关键路径的长度。
2024-12-23 00:35:23
439
原创 xdoj876图的广度优先遍历
已知无向图的邻接矩阵,以该矩阵为基础,给出广度优先搜索遍历序列,并且给出该无向图的连通分量的个数。在遍历时,当有多个点可选时,优先选择编号小的顶点。(即从顶点1开始进行遍历)第一行输出为无向图的广度优先搜索遍历序列,输出为顶点编号,顶点编号之间用空格隔开;第二行为无向图的连通分量的个数。第一行是1个正整数,为顶点个数n(n<100),顶点编号依次为1,2,…后面是邻接矩阵,n行n列。题目:图的广度优先遍历。
2024-12-23 00:32:59
216
原创 xdoj877图的深度优先遍历
已知无向图的邻接矩阵,以该矩阵为基础,给出深度优先搜索遍历序列,并且给出该无向图的连通分量的个数。在遍历时,当有多个点可选时,优先选择编号小的顶点。(即从顶点1开始进行遍历)第一行输出为无向图的深度优先搜索遍历序列,输出为顶点编号,顶点编号之间用空格隔开;第二行为无向图的连通分量的个数。第一行是1个正整数,为顶点个数n(n<100),顶点编号依次为1,2,…后面是邻接矩阵,n行n列。题目:图的深度优先遍历。
2024-12-23 00:31:41
242
原创 xdoj879最短路径
输入数据第一行是一个正整数,表示图中的顶点个数n(顶点将分别按0,1,…之后的n行每行都包含n个整数,第i行第j个数表示顶点i-1和顶点j-1之间的边长,用10000来表示两个顶点之间无边。后面每行2个数字,表示一对待求最短路径的顶点,用-1 -1表示输入结束,-1 -1不求解。每对待求最短路径的顶点输出两行数据:第一行输出两个顶点间的最短路径长度,第二行输出最短路径,要按顺序输出顶点编号序列,顶点间用空格隔开。当两个顶点间没有路径时,只在一行上输出字符串“NO”。求图中任意两个顶点之间的最短路径。
2024-12-23 00:30:45
295
原创 xdoj867完全二叉树的公共父结点
题目:完全二叉树的公共父结点问题描述有一棵无限大的完全二叉树,该二叉树自上而下、自左而右从1开始编号。从某一个结点到根结点(编号是1的结点)都有一条唯一的路径,比如从5到根结点的路径是(5, 2, 1),从4到根结点的路径是(4, 2, 1),从根结点1到根结点的路径上只包含一个结点1,因此路径就是(1)。对于两个结点x和y,假设他们到根结点的路径分别是(x1, x2, ... ,1)和(y1, y2,...,1),那么必然存在两个正整数i和j,使得从xi 和yj 开始,有xi = yj,xi +
2024-12-23 00:28:47
288
原创 xdoj860二叉树遍历
输入数据有两行,为两个字符串,其长度n均小于等于26。第一行为先序遍历序列,第二行为中序遍历序列。二叉树中的结点名称以大写字母表示:A,B,C....最多26个结点。给定一棵二叉树的先序遍历和中序遍历序列,求其后序遍历序列。在一行上输出后序遍历序列。
2024-12-23 00:27:46
249
原创 xdoj863二叉树扩展先序遍历转中序遍历
编一个程序,读入用户输入的一串扩展先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。例如如下的扩展先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。输出将输入字符串建立二叉树后中序遍历的序列,每个字符后面都有一个空格。每个输出结果占一行。根据给定的扩展先序遍历序列,建立对应的二叉树,然后对所得的二叉树进行中序遍历输出结果即可。输入包括1行字符串,长度不超过100。
2024-12-23 00:26:14
264
原创 xdoj862二叉树的不同形态
给定二叉树T(树深度H<=10,深度从1开始,结点个数N<1024,结点编号1~N)的层次遍历序列和中序遍历序列,输出T从左向右叶子结点以及二叉树先序和后序遍历序列。输入共三行:第一行是整数n,表示二叉树中的结点数目;第二行有n个整数,表示该二叉树的层次遍历序列;第三行也是n个整数,表示该二叉树的中序遍历序列。输出三行,分别是:从左向右的叶子结点,先序遍历序列,后序遍历序列。结点编号用空格隔开。题目: 二叉树的不同形态。
2024-12-23 00:24:53
278
原创 xdoj865输出完全二叉树的某一层
每组数据第一行输入一个结点数n(1<=n<=1000),第二行将树中的这n个节点依次输入(每个结点存储的数据是一个数字),n个结点编号方式是层间从上到下、层内从左到右依次编号;第三行输入一个d代表深度。每组数据在一行上输出该树中第d层的所有节点,节点间用空格隔开。每组数据输出完成后要换行。该完全二叉树的第一层是1,第二层是2 3,第三层是4;题目要求输出第二层,则输出2 3。对一棵完全二叉树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY。当n=0时,表示输入结束。
2024-12-23 00:23:13
223
原创 xdoj864将满二叉树转换为求和树
输入共3行:第一行为满二叉树中结点个数n(n<1024);第二行为n个整数,表示二叉树的先序遍历序列;第三行也有n个整数,表示二叉树的中序遍历序列。求和树:二叉树的求和树,是一颗同样结构的二叉树,其树中的每个结点将包含原始树中的左子树和右子树的和。二叉树给出先序和中序遍历序列,求和树要求输出中序遍历序列;输出1行整数,表示求和树的中序遍历序列。给出满二叉树,编写算法将其转化为求和树。所有处理数据不会大于int类型范围。题目: 将满二叉树转换为求和树。
2024-12-23 00:22:01
244
原创 xdoj868完全二叉树的子树
对一棵完全二叉树,采用自上而下、自左往右的方式从1开始编号,我们已知这个二叉树的最后一个结点是n,现在的问题是以结点m为根的子树一共包括多少个结点?输入数据包括多行,每行给出一组测试数据,包括两个整数m,n (1 <= m <= n <= 1000000000)。0 0表示输入结束。对于每一组测试数据,输出一行,该行包含一个整数,给出以结点m为根的子树中包括的结点的数目。题目:完全二叉树的子树。
2024-12-23 00:16:24
173
原创 xdoj735最小生成树
输入数据第一行为两个正整数n(1<n<=30)和m(1<m<100),分别表示顶点数和边数。后面紧跟m行数据,每行数据是一条边的信息,包括三个数字,分别表示该边的两个顶点和边上的权值。按顺序输出Kruskal算法求得的最小生成树的边集,每行一条边,包括三个数字,分别是该边的两个顶点和边上的权值,其中第一个顶点的编号应小于第二个顶点的编号。用克鲁斯卡尔(Kruskal)算法求无向网的最小生成树。
2024-12-23 00:11:11
212
原创 xdoj734求无向图连通子图
测试数据由m+1行构成,第一行为两个正整数n(1<n<=30)和m(1<m<100),分别表示顶点数(顶点编号为1,2,…,n)和边数,其后是m行数据,每行数据是一条边的信息,包括两个数字,分别表示该边关联的两个顶点。输出两行信息,第一行输出该图中连通子图的个数。第二行按照升序输出每个连通子图中顶点个数。求无向图连通子图个数。
2024-12-23 00:09:45
197
原创 xdoj858求矩阵中的马鞍点
是第i行中的最小值,同时又是第j列中的最大值,则称此元素为该矩阵中的一个马鞍点。编写程序求出矩阵中的所有马鞍点。输出矩阵中的所有马鞍点,输出顺序:行序优先,按行、列序号递增顺序输出,若有多个马鞍点,每个马鞍点一行。也可能没有马鞍点,则输出NO。首先输入两个整数n和m,为矩阵维数,然后输入矩阵的值。所设计的程序能够通过编译。
2024-12-23 00:07:09
466
原创 852判断堆栈出栈序列是否有效
如果以序列“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(表示能否通过栈得到该序列)。根据栈的后进先出特性进行判断。
2024-12-22 16:28:03
194
原创 853求一个顺序串的next函数值
所设计的程序能够通过编译。并能够实现从输入一个长度为n的顺序串str,并求出顺序串str的next值。首先输入串的长度n,然后输入顺序串str.输出str的next值,以空格分隔。求一个顺序串的next函数值。
2024-12-22 16:27:07
223
原创 854后缀表达式求值
对逆波兰式(即后缀表达式)求值。其中每个操作数的取值范围为0~9,均为个位数。运算符为加减乘除四种(+、-、*、/)。如(4+5)*2-3的逆波兰式为45+2*3-。一个字符串表示的逆波兰式,如:45+2*3-,表达式的长度不超过100。可采用栈为辅助存储结构,碰到操作数则入栈,碰到操作符则连续两次出栈,然后进行计算。
2024-12-22 16:24:46
177
原创 855矩阵加法运算
首先输入两个整数n和m,为矩阵维数,然后输入两个矩阵的值B1、V1和B2、V2。编程实现上述表示法的矩阵加法运算。输出矩阵运算结果B、V。
2024-12-22 16:23:46
186
原创 857前缀表达式求值
对前缀表达式求值,其中操作数为正整数,运算符只包含+-*/,运算结果也为整数。如(42+8)*(36-6)+9/3的前缀表达式为:+ * + 42 8 – 36 6 / 9 3。输入为一行,一个字符串表示的前缀表达式,如:+ * + 42 8 – 36 6 / 9 3,表达式的长度不超过100,式中不同元素之间用空格隔开。从右到左倒过来处理字符串,采用栈作为辅助存储结构,碰到操作数则入栈,碰到操作符则连续两次出栈,然后进行计算,所得结果入栈,直至整个字符串处理完毕。
2024-12-22 16:16:53
189
原创 731魔王语言解释
有一个魔王总是使用自已的一种非常精练而抽象的语言讲话,没有人能听得懂。基本要求:设大写字母表示魔王语言的词汇,小写字母表示人的词汇,希腊字母表示可以用大写字母或小写字母代换的变量。用下述两种规则和下述规则(2)实现。在这两种形式中,从左到右均表示解释;从右到左均表示抽象。一组数据,数据为一个字符串,表示一个待翻译的字符串。写一个魔王解释程序,将魔王的话解释成人能听懂的话。将字符串按规则翻译后输出。
2024-12-22 16:15:28
239
原创 733huffman编码
假设用于通信的电文由n(4<n<30)个字符组成,字符在电文中出现的频度(权值)为w1w2…wn,试根据该权值序列构造哈夫曼树,并计算该树的带权路径长度。一组数据,第1行为n的值,第2行为n个整数,表示字符的出现频度。输出一个整数,表示所构造哈夫曼树的带权路径长度。
2024-12-22 16:13:21
218
原创 753括号匹配检测
假设表达式中只包含三种括号:圆括号、方括号和花括号。对输入的一串由括号组成的字符串,判断其匹配情况,如([{}])或({[][()]})等均为匹配,而{[]})}或{[()]或([]}均为不匹配;若括号可以成功匹配,则输出yes,否则输出no。测试数据有多组,第一行包含一个整数T(1≤T≤100),表示测试字符串的数量。对于每组测试,输入一个由圆、方、花括号符构成的字符串(长度不超过30)。对于每组测试,若括号可以成功匹配,则输出yes,否则输出no。
2024-12-22 16:11:56
166
原创 825中心对称的字符串
对于有n个字符的字符串,设计算法判断字符串是否中心对称。例如,xyzzyx和xyzyx都是中心对称的字符串。每组数据有2行:第一行为整数n,表示字符的个数,n小于100;第二行为n个字符组成的字符串。判断这个字符串是否是中心对称的,是输出“YES”,不是输出“NO”。
2024-12-22 16:09:18
185
原创 826最小周期串
如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。输入一个长度不超过80的串,输出它的最小周期。输出每组字符串的最小周期。每组数据为一个字符串。
2024-12-22 16:08:31
196
原创 824奇偶序列
奇偶序列2S10000 Kb输入一个整数组成的序列,然后将序列中的奇数位置结点依序放在前面,偶数位置结点依序放在后面,组成一个新的序列。输出此新序列。
2024-12-22 16:07:08
241
原创 823报数出列问题
可以使用队列,每次操作时对队列中元素进行判断,不需要舍弃的就重新加入队列;要求输出此时队列中剩下的人在初始队列中的编号。输出队列中剩下的人在初始队列中的编号,编号之间有一个空格。一个正整数N,表示初始人数,N≤5000。已知N个人(以编号1,2,3。
2024-12-22 16:04:54
234
原创 746有序表的合并去重
第一行输入两个正整数a,b,分别表示第一个线性表L1和第二个线性表L2的长度;第2行依次输入L1中单调增的a个正整数;第3行依次输入L2中单调增的b个正整数。正整数均小于10000。的值为单调增的正整数(
2024-12-22 16:02:33
237
原创 745链表去重
输入的第一行包含两个整数,分别表示链表第一个结点的地址和结点个数。,将键值的绝对值有重复的结点删除:即对任意键值。给定一个键值为整数的单链表。输出的第一行为去重后链表。有键值或其绝对值等于。的第一个结点被保留在。是下一个结点的地址。的所有结点,每个结点。
2024-12-22 14:50:59
263
原创 729约瑟夫环
编号为1,2,...,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。现在给定一个随机数m>0,从编号为1的人开始,按顺时针方向1开始顺序报数,报到m时停止。报m的人出圈,同时留下他的密码作为新的m值,从他在顺时针方向上的下一个人开始,重新从1开始报数,如此下去,直至所有的人全部出圈为止。输入数据第一行为两个正整数n和m,分别表示人的个数及初始随机数,每组数据的第二行为n个整数,表示每个人持有的密码。用一行输出n个整数表示依次出圈人的编号,整数之间用空格分隔。使用不带头节点的循环链表。
2024-12-22 14:45:10
255
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅