- 博主码风太丑,勿喷。
- 比较简单的我就没写思路,只贴了代码。
- hint:
<bits/stdc++.h>
是万能头文件,大多oj和编译器都能用,这样就不用写这么多头文件了。- 有错误请指出,thanks。
- 有的题数据输出格式改了,PE的题请在下面评论区留言。不懂的也可以在下面留言,
可能会解答。- 数据结构前40
[960] 双向链表的操作问题
描述
建立一个长度为n的带头结点的双向链表,使得该链表中的数据元素递增有序排列。(必须使用双向链表完成,数据类型为整型。)
输入
第一行:双向表的长度;
第二行:链表中的数据元素。
输出
输出双向链表中的数据元素的值。
样例输入
1 | 10 |
样例输出
1 | 2 3 4 5 6 8 9 10 12 21 |
1 |
|
[980] 输出利用先序遍历创建的二叉树的层次遍历序列
队列写bfs。
描述
利用先序递归遍历算法创建二叉树并输出该二叉树的层次遍历序列。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树的二叉链表存储结构。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符”#”时表示该结点不需要创建,否则创建该结点。最后再输出创建完成的二叉树的层次遍历序列。需要注意输入数据序列中的”#”字符和非”#”字符的序列及个数关系,这会最终决定创建的二叉树的形态。
输入
输入为接受键盘输入的由大写英文字符和”#”字符构成的一个字符串(用于创建对应的二叉树)。
输出
每个用例用一行出该用例对应的二叉树的层次遍历序列。
样例输入
1 | A## |
样例输出
1 | A |
1 |
|
[981] 统计利用二叉树存储的森林中树的棵数
找根节点的右儿子,再找右儿子的右儿子,直到没有右儿子为止,这些右儿子的总数就是棵数。
描述
普通树及其构成的森林均可转换成相应的二叉树,反之亦然。故而可以根据相应的转换方法去统计某一二叉树对应的森林中树的棵数。相应的二叉树可利用先序递归遍历算法创建。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树的二叉链表存储结构。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符”#”时表示该结点不需要创建,否则创建该结点。最后再统计该二叉树对应的森林中树的棵数。需要注意输入数据序列中的”#”字符和非”#”字符的序列及个数关系,这会最终决定创建的二叉树的形态(序列里面允许无效字符但需要正确处理)。
输入
输入为接受键盘输入的由大写英文字符和”#”字符构成的一个字符串(用于创建对应的二叉树)。
输出
输出该用例对应的二叉树表示的森林中树的棵数。
样例输入
1 | A#B#CD### |
样例输出
1 | 3 |
1 |
|
[982] 输出利用二叉树存储的普通树的度
描述
普通树可转换成相应的二叉树(该二叉树的根结点一定缺少右儿子),反之亦然。故而可以根据相应的转换方法去统计某一二叉树对应的普通树的度。普通树的度为其结点儿子数的最大值。相应的二叉树可利用二叉树的先序递归遍历算法创建。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树的二叉链表存储结构。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符”#”时表示该结点不需要创建,否则创建该结点。最后再统计该二叉树对应的森林中树的棵数。需要注意输入数据序列中的”#”字符的序列及个数关系,这会最终决定创建的二叉树的形态(序列里面允许无效字符但需要正确处理)。
输入
输入为接受键盘输入的由大写英文字符和”#”字符构成的一个字符串(用于创建对应的二叉树)。
输出
若表示的二叉树对应普通树,则该普通树的度;否则输出ERROR。
样例输入
1 | AB#CD##E### |
样例输出
1 | 3 |
1 |
|
[983] 利用二叉树中序及后序遍历确定该二叉树的先序序列
当前树的后续遍历的最后一个元素肯定是根节点。中序遍历中根节点右边是左子树,右边是右子树,递归处理。
描述
已知二叉树的中序和先序遍历可以唯一确定后序遍历、已知中序和后序遍历可以唯一确定先序遍历,但已知先序和后序,却不一定能唯一确定中序遍历。现要求根据输入的中序遍历结果及后序遍历结果,要求输出其先序遍历结果。
输入
第一行为中序序列
第二行为后续序列
输出
输出为遍历二叉树得到的先序序列
样例输入
1 | BFDAEGC |
样例输出
1 | ABDFCEG |
1 |
|
这个博客
建树的话会好理解一点,代码也会长一点。
[984] 利用二叉树中序及先序遍历确定该二叉树的后序序列
当前树的先续遍历的第一个元素肯定是根节点。中序遍历中根节点右边是左子树,右边是右子树,递归处理。
描述
已知二叉树的中序和先序遍历可以唯一确定后序遍历、已知中序和后序遍历可以唯一确定先序遍历,但已知先序和后序,却不一定能唯一确定中序遍历。现要求根据输入的中序遍历结果及先序遍历结果,要求输出其后序遍历结果。
输入
输入数据占2行,其中第一行表示中序遍历结果,第二行为先序遍历结果。
输出
对测试数据,输出后序遍历结果。
样例输入
1 | BFDAEGC |
样例输出
1 | FDBGECA |
1 |
|
这个博客
建树的话会好理解一点,代码也会长一点。
[986] 哈夫曼译码
描述
通常要求根据给定的编码本对密文进行解码。现已给定相应字符的哈夫曼编码,要求根据编码对密文进行解码。(建立哈夫曼树以及编码、主函数等都已经给出,你只需要填写译码函数void ccode(haffnode hafftree[],int n)即可。
输入
根据哈夫曼树编码表,针对字符串做好的编码结果。
输出
对每一行需要解码的串,进行解码,并输出解码后的结果。
样例输入
1 | 000100011011101110 |
样例输出
1 | aabcc |
1 | const int maxvalue=100; |
1 |
[987] 输出用先序遍历创建的二叉树是否为完全二叉树的判定结果
完全二叉树是依次排列的,我们按层次遍历,找到第一个空节点,如果之前等于总结点,就是,否则不是。
描述
利用先序递归遍历算法创建二叉树并判断该二叉树是否为完全二叉树。完全二叉树只能是同深度的满二叉树缺少最后一层倒数连续个叶子结点。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树的二叉链表存储结构。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符”#”时表示该结点不需要创建,否则创建该结点。最后判断创建完成的二叉树度是否为完全二叉树。需要注意输入数据序列中的”#”字符和非”#”字符的序列及个数关系,这会最终决定创建的二叉树的形态。
输入
输入为接受键盘输入的由大写英文字符和”#”字符构成的一个字符串(用于创建对应的二叉树)。
输出
对应的二叉树是否为完全二叉树的判断结果。若是输出”Y”,否则输出”N”。
样例输入
1 | A## |
样例输出
1 | Y |
1 |
|
[1010] 折半查找的实现
二分。
描述
编写程序实现折半查找算法。
输入
第一行是查找表的长度n
第二行是查找表中的数据元素 ;
第三行是要查找的数据元素的关键字.
输出
查找成功返回位序,不成功返回-1 ,第二行为比较的次数。
样例输入
1 | 11 |
样例输出
1 | -1 |
1 |
|
[1011] 二叉排序树的实现和查找
博主懒了,sort+二分
描述
按照给定的关键字集合,建立二叉排序树。在建立的二叉排序树上查找指定的关键字,查找成功,输出找到该关键字比较的次数;查找不成功,输出-1.
输入
关键字个数n;
关键字集合;
要查找的关键字;
输出
查找成功输出比较的次数,否则输出-1。
样例输入
1 | 12 |
样例输出
1 | 4 |
1 |
|
[1012] 哈希表(链地址法处理冲突)
往后放就行了。
描述
采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用链地址法。建立链表的时候采用尾插法。
输入
第一行为哈西表的长度m;
第二行为关键字的个数n;
第三行为关键字集合;
第四行为要查找的数据。
输出
如果查找成功,输出该关键字所在哈希表中的地址和比较次数;如果查找不成功,输出-1。
样例输入
1 | 13 |
样例输出
1 | 3,1 |
1 |
|
[1013] 哈希表(开放定址法处理冲突)
描述
采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用开放定址法的线性探测。
输入
第一行为哈希表的长度n; 第二行为关键字的个数; 第三行为关键字集合; 第三行为要查找的数据。
输出
如果查找成功,输出关键字所哈希表中的地址和比较次数;如果查找不成功,输出-1。
样例输入
1 | 13 |
样例输出
1 | 3,1 |
1 |
|
[1014] 交换排序算法的设计与实现——冒泡排序
祝愿大家都能抽到这题
描述
编程实现冒泡排序,按照非递减排序,测试数据为整数。
输入
第一行是待排序数据元素的个数;
第二行是待排序的数据元素。
输出
第一行输出第一趟冒泡排序的结果。
样例输入
1 | 10 |
样例输出
1 | 36 41 19 23 4 20 18 12 22 50 |
1 |
|
[1015] 堆排序算法
每次在双亲节点,左儿子,右儿子间选最小的与根节点交换即可。
描述
编写程序堆排序算法。按照从小到大的顺序进行排序,测试数据为整数。
输入
第一行是待排序数据元素的个数; 第二行是待排序的数据元素。(提示:用小根堆)
输出
一趟堆排序的结果。
样例输入
1 | 10 |
样例输出
1 | 4 12 20 18 22 41 50 36 19 23 |
1 |
|
[1016] 插入排序算法实现
一趟而已。。。骚起来。
描述
插入排序算法实现。
输入
第一行是待排序数据元素的个数;
第二行是待排序的数据元素。
输出
一趟直接插入排序算法结果。
样例输入
1 | 10 |
样例输出
1 | 36 50 41 19 23 4 20 18 12 22 |
1 |
|
[1051] 输出利用先序遍历创建的二叉树中的指定结点的孩子结点
。。。
描述
利用先序递归遍历算法创建二叉树并输出该二叉树中指定结点的儿子结点。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符”#”时表示该结点不需要创建,否则创建该结点。最后再输出创建完成的二叉树中的指定结点的儿子结点。注意输入数据序列中的”#”字符和非”#”字符的序列及个数关系,这会最终决定创建的二叉树的形态。
输入
输入用例分2行输入,第一行接受键盘输入的由大写英文字符和”#”字符构成的一个字符串(用于创建对应的二叉树),第二行为指定的结点数据。
输出
用一行输出该用例对应的二叉树中指定结点的儿子结点,格式为:L:,R:。若相应儿子不存在则以”#”。
样例输入
1 | A## |
样例输出
1 | A## |
1 |
|
[1052] 输出利用先序遍历创建的二叉树中的指定结点的双亲结点
每个节点保存双亲节点。
描述
利用先序递归遍历算法创建二叉树并输出该二叉树中指定结点的双亲结点。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符“#”时表示该结点不需要创建,否则创建该结点。最后再输出创建完成的二叉树中的指定结点的双亲结点。注意输入数据序列中的“#”字符和非“#”字符的序列及个数关系,这会最终决定创建的二叉树的形态。
输入
输入用例分2行输入,第一行接受键盘输入的由大写英文字符和“#”字符构成的一个字符串(用于创建对应的二叉树),第二行为指定的结点数据。
输出
用一行输出该用例对应的二叉树中指定结点的双亲结点。若相应双亲结点不存在则以“#”代替。
样例输入
1 | A## |
样例输出
1 | # |
1 |
|
[1053] 输出利用先序遍历创建的二叉树中的指定结点的度
描述
利用先序递归遍历算法创建二叉树并输出该二叉树中指定结点的度。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符“#”时表示该结点不需要创建,否则创建该结点。最后再输出创建完成的二叉树中的指定结点的度。注意输入数据序列中的字符“#”和非“#”字符的序列及个数关系,这会最终决定创建的二叉树的形态。
输入
输入用例分2行输入,第一行接受键盘输入的由大写英文字符和“#”字符构成的一个字符串(用于创建对应的二叉树),第二行为指定的结点数据。
输出
用一行输出该用例对应的二叉树中指定结点的度。
样例输入
1 | A## |
样例输出
1 | 0 |
1 |
|
[1055] 邻接矩阵到邻接表
描述
假设无向图G采用邻接矩阵存储,编写一个算法输出邻接表。
输入
第一行为一个整数n,表示顶点的个数(顶点编号为0到n-1),接下来是为一个n*n大小的整数矩阵,表示图的邻接关系。数字为0表示不邻接,1表示邻接。
输出
输出图G的邻接表。第一行表示顶点0可直接到达的顶点编号。其他行定义相同。
样例输入
1 | 5 |
样例输出
1 | 134 |
1 |
|
[1056] 邻接表到邻接矩阵
注意读入数据的方法。
描述
假设无向图G采用邻接表存储,编写一个算法输出邻接矩阵。
输入
第一行为一个整数n,表示顶点的个数(顶点编号为0到n-1)。第二行表示顶点0可直接到达的顶点编号,其他行定义相同。
输出
输出图G的邻接矩阵。整数矩阵大小为n*n,表示图的邻接关系。数字为0表示不邻接,1表示邻接。
样例输入
1 | 5 |
样例输出
1 | 01011 |
1 |
|
[1057] 有向图的出度计算
头结点保存结点数。
描述
假设有向图G采用邻接表存储,设计算法求出图G中每个顶点的出度。
输入
第一行为图中顶点的个数n 第二行为图的边的条数e 第三行为依附于一条边的两个顶点的数据信息。
输出
图G中每个顶点的出度。第一行表示顶点0的出度,其他行定义相同。
样例输入
1 | 5 |
样例输出
1 | 2 |
1 |
|
[1058] 无向图顶点度的计算
描述
假设无向图G采用邻接矩阵存储,设计算法求出图G中每个顶点的度。
输入
第一行为一个整数n,表示顶点的个数(顶点编号为0到n-1)。接下来是为一个n*n大小的整数矩阵,表示图的邻接关系。数字为0表示不邻接,1表示邻接。
输出
图G中每个顶点的度。第一行表示顶点0的度,其他行定义相同。
样例输入
1 | 5 |
样例输出
1 | 3 |
1 |
|
[1059] 有向图的最大出度计算
描述
假设有向图G采用邻接表存储,求出图G中出度最大的顶点,并输出顶点的编号(有多个结果的都要输出)。(顶点的数据元素为整型数据。)
输入
第一行为图中顶点的个数n; 第二行为图的边的条数e; 第三行为依附于一条边的两个顶点信息。邻接。
输出
图G中出度的最大值以及顶点编号。第一行表示最大出度,第二行表示所有顶点的编号。
样例输入
1 | 5 |
样例输出
1 | 2 |
1 |
|
[1060] 无向图的最大度计算
描述
假设无向图G采用邻接矩阵存储,求出图G最大度值并输出顶点的编号(有多个结果的都要输出)。
输入
第一行为一个整数n,表示顶点的个数(顶点编号为0到n-1)。接下来是为一个n*n大小的整数矩阵,表示图的邻接关系。数字为0表示不邻接,1表示邻接。
输出
图G中度的最大值以及顶点编号。第一行表示最大度值,第二行表示所有顶点的编号。
样例输入
1 | 5 |
样例输出
1 | 4 |
1 |
|
[1061] 有向图的k出度计算
描述
假设有向图G采用邻接矩阵存储,计算图G中出度为k的顶点数量,并输出顶点的编号。
输入
第一行第一个整数n表示顶点的个数(顶点编号为0到n-1),第二个数表示出度k,接下来是为一个n*n大小的整数矩阵,表示图的邻接关系。数字为0表示不邻接,1表示不邻接。
输出
图G中出度为k顶点数量以及顶点编号。第一行表示出度为k顶点数量,第二行表示顶点的编号。
样例输入
1 | 5 2 |
样例输出
1 | 3 |
1 |
|
[1062] 有向图的边存在判断
祝愿大家也能抽到这道题。
描述
假设有向图G采用邻接矩阵存储,判断图G中是否存在边。
输入
第一行第一个整数n表示顶点的个数(顶点编号为0到n-1),第二行表示顶点i和j,接下来是为一个n*n大小的整数矩阵,表示图的邻接关系。数字为0表示不邻接,1表示不邻接。
输出
yes(存在),no(不存在)。
样例输入
1 | 5 |
样例输出
1 | no |
1 |
|
[1063] 带权有向图计算
描述
假设带权有向图G采用邻接矩阵存储,计算图的最大权值、最小权值以及对应的有向边。
输入
第一行第一个整数n表示顶点的个数(顶点编号为0到n-1),第二行表示顶点i和j,接下来是为一个n*n大小的整数矩阵,表示图的邻接关系。数字为大于0表示邻接值,-1表示不邻接,对角线为0。
输出
第一行为最大权值,第二行为有向边。第三行为最小权值,第四行为有向边。
样例输入
1 | 5 |
样例输出
1 | 6 |
1 |
|
[1064] 带权无向图存储判定
描述
假设无向图G采用邻接矩阵存储,判断输入数据格式是否正确(即是否为对称矩阵)。
输入
第一行第一个整数n表示顶点的个数(顶点编号为0到n-1),接下来是为一个n*n大小的整数矩阵,表示图的邻接关系。数字为大于0表示邻接值,-1表示不邻接,对角线为0。
输出
yes(正确),no(错误)。
样例输入
1 | 5 |
样例输出
1 | yes |
1 |
|
[1065] 无向图的连通分量计算
- 用并查集做。
- 把一个联通分支的点当做一个集合,两个点有边就合并他们所在的集合,最后看有几个集合,就是有几个联通分支。
- 这道题后台给的好像都是联通图,所以直接输出1也可以。
太水了
描述
假设无向图G采用邻接矩阵存储,编写一个算法求连通分量的个数。
输入
第一行为一个整数n,表示顶点的个数(顶点编号为0到n-1),接下来是为一个n*n大小的整数矩阵,表示图的邻接关系。数字为0表示不邻接,1表示不邻接。
输出
连通分量的个数。
样例输入
1 | 5 |
样例输出
1 | 1 |
1 |
|
[1067] 有向图的邻接表存储强连通判断
描述
假设有向图G采用邻接表存储,设计一个算法,判断图G是否是强连通图。若是则返回yes;否则返回no。(图中顶点信息为整型数据。)
输入
第一行为图中顶点的个数n;
第二行为图的边的条数e;
接下来e行,每行是一条边依附的两个顶点信息。
输出
强连通图输出yes,否则输出no.
样例输入
1 | 5 |
样例输出
1 | yes |
1 |
|
[1068] 图的按录入顺序深度优先搜索
普通dfs,注意标记一下用过的点就行了。
描述
图的深度优先搜索类似于树的先根遍历,即从某个结点开始,先访问该结点,然后深度访问该结点的第一棵子树,依次为第二顶子树。如此进行下去,直到所有的结点都访问为止。在该题中,假定所有的结点以“A”至“Z”中的若干字符表示,且要求结点的访问顺序根据录入的顺序进行访问。如果结点录入的顺序为HUEAK,从H开始进行深度优先搜索,则可能的搜索结果为:H->A->K->U>E.
输入
第一行为一个整数n,表示顶点的个数,第二行为n个大写字母构成的字符串,表示顶点,接下来是为一个n*n大小的整数矩阵,表示图的邻接关系。数字为0表示不邻接,否则为相应的边的长度。最后一行为一个字符,表示要求进行深度优先搜索的起始顶点。
输出
用一行输出深度优先搜索结果,起始点为给定的顶点。
样例输入
1 | 5 |
样例输出
1 | HEAUK |
1 |
|
[1069] 图的按录入顺序广度优先搜索
用队列写bfs。
描述
图的广度优先搜索类似于树的按层次遍历,即从某个结点开始,先访问该结点,然后访问该结点的所有邻接点,再依次访问各邻接点的邻接点。如此进行下去,直到所有的结点都访问为止。在该题中,假定所有的结点以“A”—“Z”中的若干字符表示,且要求结点的访问顺序根据录入的顺序进行访问。如果结点录入的顺序为HUEAK,要求从H开始进行广度优先搜索,则可能的搜索结果为:H->E->A->U->K
输入
第一行为一个整数n,表示顶点的个数,第二行为n个大写字母构成的字符串,表示顶点,接下来是为一个n*n大小的整数矩阵,表示图的邻接关系。数字为0表示不邻接,否则为相应的边的长度。最后一行为一个字符,表示要求进行广度优先搜索的起始顶点。
输出
用一行输出广度优先搜索结果,起始点为给定的顶点。
样例输入
1 | 5 |
样例输出
1 | HEAUK |
1 |
|
[1070] 邻接矩阵存储简单路径
dfs,注意标记回溯。
描述
假设无向图G采用邻接矩阵存储,设计一个算法,输出图G中从顶点u到v的所有简单路径。
输入
简单路径是指路径上的顶点不重复。第一行为一个整数n,表示顶点的个数(顶点编号为0到n-1),第二行表示顶点u和v的编号,接下来是为一个n*n大小的矩阵,表示图的邻接关系。数字为0表示不邻接,1表示不邻接。
输出
输出图G中从顶点u到v的所有简单路径。
样例输入
1 | 5 |
样例输出
1 | 0123 |
1 |
|
[1071] 有向图的邻接矩阵存储顶点删除
描述
假设有向图G采用邻接矩阵存储,要求删除某一个顶点i(包括与其相关连的边)。
输入
第一行第一个整数n表示顶点的个数(顶点编号为0到n-1),第二个数表示被删除的顶点编号,接下来是为一个n*n大小的整数矩阵,表示图的邻接关系。数字为0表示不邻接,1表示邻接。
输出
新的邻接矩阵,第一行表示顶点的个数;
第二行是剩余的结点编号;
接下来是为一个(n-1)*(n-1)大小的整数矩阵。
样例输入
1 | 5 2 |
样例输出
1 | 4 |
1 |
|
[1072] 有向图的邻接矩阵存储根计算
暴力出奇迹啊,floyd变形,简单易懂,详见代码。
描述
若有向图中存在一个顶点v,从v可以通过路径到达图中其他所有顶点,那么称v为该有向图的根。假设图G采用邻接矩阵存储,求有向图的所有根。
输入
第一行为一个整数n,表示顶点的个数(顶点编号为0到n-1),接下来是为一个n*n大小的整数矩阵,表示图的邻接关系。
输出
有向图的所有根。
样例输入
1 | 5 |
样例输出
1 | 01234 |
1 |
|
[1075] 求最小生成树(Prim算法)
书上有详细解释,这里就不多赘述。
描述
求出给定无向带权图的最小生成树。图的定点为字符型,权值为不超过100的整形。在提示中已经给出了部分代码,你只需要完善Prim算法即可。
输入
第一行为图的顶点个数n第二行为图的边的条数e接着e行为依附于一条边的两个顶点和边上的权值
输出
最小生成树中的边。
样例输入
1 | 6 |
样例输出
1 | (A,C)(C,F)(F,D)(C,B)(B,E) |
1 |
|
[1076] 判断给定有向图是否存在回路
还是floyd变形,暴力出奇迹。
描述
判断给定有向图是否存在回路。
输入
第一行为图中顶点的个数n; 第二行为途中弧度条数e;
第二行为顶点信息;接着e行为e条弧依附的两个顶点。
输出
该图是否存在回路,是输出yes;,不是输出no。
样例输入
1 | 4 |
样例输出
1 | no |
1 |
|
[1077] 平衡二叉树的判定
找有没有哪个树的左右儿子生成的子树深度之差大于1。
1 |
|
[1098] 堆的判断
找是否存在一个节点的值小于它双亲结点的值。
描述
编写程序判断以下给出的整数序列是否为最小堆。
输入
第一行是元素的个数n;
第二行是n个整数序列。
输出
如果是小根堆,输出Yes,否者输出No。
样例输入
1 | 10 |
样例输出
1 | No |
1 |
|
[1099] 希尔排序算法实现
只要一趟,滑稽.jpg
描述
编程实现希尔排序算法,按照非递减排序,测试数据为整数。
输入
第一行是待排序数据元素的个数n;
第二行是待排序的数据元素。
输出
一趟希尔排序后的结果。
样例输入
1 | 10 |
样例输出
1 | 4 20 18 12 22 50 36 41 19 23 |
1 |
|
[1105] 交换二叉树的孩子结点
递归交换即可。
描述
编程程序实现将二叉树中所有结点的左右孩子互换。
输入
二叉树的先序序列(输入先序序列建立二叉树)。
输出
第一行为交换后的二叉树的中序序列
第二行为交换后的二叉树的先序序列
样例输入
1 | ABD###C### |
样例输出
1 | CABD |
1 |
|