
D-OJ
学校oj的作业练习
泥烟
邮箱tsjkht@foxmail.com,
泥烟の导航站: https://knight02-bit.github.io/
展开
-
[D-OJ练习] 归并排序验证性实验
请创建一个一维整型数组用来存储待排序关键码,关键码从数组下标为1的位置开始存储,下标为0的位置不存储关键码。输入关键码的个数,以及各个关键码,采用归并排序的方法对关键码数组进行排序,输出每轮的中间过程。输入描述各个命令以及相关数据的输入格式如下:第一行输入关键码的个数n第二行输入n个整型关键码输出描述输出每轮的关键码数组,关键码之间以空格隔开,最后一个关键码后有空格,然后回车,可以有重复的行。输入样例102 5 9 8 7 4 3 10 16 13输出样例2 5 8 9 4 7原创 2021-11-24 13:59:56 · 381 阅读 · 0 评论 -
[D-OJ练习] 快速排序验证性实验
请创建一个一维整型数组用来存储待排序关键码,关键码从数组下标为1的位置开始存储,下标为0的位置不存储关键码。输入关键码的个数,以及各个关键码,采用快速排序的方法对关键码数组进行排序,输出每轮比较的过程。输入描述各个命令以及相关数据的输入格式如下:第一行输入关键码的个数n第二行输入n个整型关键码输出描述输出关键码比较过程,将需要移动的关键码输出,每轮一行,关键码之间以空格隔开,最后一个关键码后有空格,然后回车,不重复输出,最后将排好序的关键码输出,以空格隔开,最后回车。输入样例102 5 9原创 2021-11-18 13:14:39 · 268 阅读 · 0 评论 -
[D-OJ练习] 堆排序验证性实验
请创建一个一维整型数组用来存储待排序关键码,关键码从数组下标为1的位置开始存储,下标为0的位置不存储关键码。输入关键码的个数,以及各个关键码,采用堆排序的方法对关键码数组进行排序,输出初始堆序列,以及每轮调整堆的关键码比较过程。输入描述各个命令以及相关数据的输入格式如下:第一行输入关键码的个数n第二行输入n个整型关键码输出描述首先输出建初始堆的过程,输出要与双亲结点交换的根结点的关键码,每棵子树的调整占一行。接下来一行输出初始堆序列。接下来若干行输出关键码比较过程,输出要与双原创 2021-11-17 14:07:52 · 357 阅读 · 0 评论 -
[D-OJ练习] 散列查找实验(闭散列/开散列)
请设计一个整型开散列表,散列函数为除留余数法,其中散列表的长度、除留余数法的模和关键码的个数由键盘输入,再根据输入由键盘输入所有的关键码。分别对三个待查值在散列表中进行查找,输出查找结果采用头插法。输入描述各个命令以及相关数据的输入格式如下:第一行输入闭散列表的长度n第二行输入除留余数法的模m第三行输入关键码的个数num第四行输入num个整型关键码第五行输入三个待查整型值输出描述输出三行,每行格式为: 如果找到待查值,输出找到待查值的位置,先输出待查值在散列表指针数组中的..原创 2021-11-14 13:11:28 · 1401 阅读 · 0 评论 -
[D-OJ练习] 使用邻接表实现AOV网的拓扑排序算法
输入描述首先输入图中顶点个数和边的条数;输入顶点的信息(字符型);输入各顶点的入度;输入各边及其权值。输出描述输出AOV网的拓扑序列(顶点信息),以空格隔开,最后一个顶点后面有空格,如果AOV网存在回路,输出"有回路"的信息,占一行。输入样例6 9A B C D E F3 0 1 3 0 21 01 32 02 33 03 54 24 34 5输出样例B E C D F A #include <iostream>#inc..原创 2021-11-08 18:38:24 · 896 阅读 · 0 评论 -
[D-OJ练习] (★Prim路径输出)使用邻接矩阵实现最小生成树Prim算法
用邻接矩阵存储无向图,实现最小生成树Prim算法,图中边的权值为整型,顶点个数少于10个。输入描述首先输入图中顶点个数和边的条数;再输入顶点的信息(字符型);再输入各边及其权值。输出描述输出从编号为0的顶点开始的Prim算法最小生成树中的各边及其权值,每条边及其权值占一行。输入样例5 7A B C D E0 1 60 2 20 3 11 2 41 3 32 4 63 4 7输出样例A D 1A C 2D B 3C E 6本以为在p原创 2021-11-04 12:45:13 · 1320 阅读 · 0 评论 -
[D-OJ练习] (Dijkstra溯源)使用邻接矩阵实现有向图最短路径Dijkstra算法
使用邻接矩阵实现有向图最短路径Dijkstra算法#include <iostream>#include <cstring>#include <vector>#include <algorithm>using namespace std;typedef pair<int, int> PII;vector<PII> v;const int MaxSize = 10;const int INF = 0x3f3f3f.原创 2021-11-02 23:22:05 · 573 阅读 · 0 评论 -
[D-OJ练习] 求无向图中某顶点的度
已知无向图的顶点为字符型,要求采用邻接矩阵表示,图中顶点序号按字符顺序排列,从键盘输入图中顶点的个数、边的条数、顶点的信息和边的组成等。求某顶点的度是多少?输入描述第一行输入无向图的顶点数和边的条数,以空格隔开第二行输入每个顶点的数据,中间没有空格第三行输入每条边,每条边的格式为i j,中间有空格,所有边占一行第四行输入某个顶点的序号输出描述输出要求顶点的度,占一行输入样例5 5ABCDE0 1 0 4 1 2 2 3 3 40输出样例2..原创 2021-10-26 19:06:38 · 1437 阅读 · 2 评论 -
[D-OJ练习] 有向图的邻接表表示法验证程序(两种写法)
用邻接表表示有向图,完成图的创建、图的深度优先遍历、图的广度优先遍历操作。其中图的顶点信息是字符型,图中顶点序号按字符顺序排列,边的输入按照边的顶点序号从小到大的顺序排列,如下图的边的输入顺序为0 1,0 2,0 3,1 2,1 3,2 4,3 4共七条边,邻接表的边结点采用头插法。本输入样例中所用的图如下所示:输入描述第一行输入两个值,第一个是图中顶点的个数,第二个是图中边的条数第二行输入各顶点的信息,即输入每个顶点字符第三行开始输入每条边,每条边的形式为两个顶点的序号,中间以空格隔..原创 2021-10-29 23:16:29 · 545 阅读 · 0 评论 -
[D-OJ练习] 无向图的邻接矩阵表示法验证程序
采用邻接矩阵表示无向图,完成图的创建、图的深度优先遍历、图的广度优先遍历操作。其中图的顶点信息是字符型,图中顶点序号按字符顺序排列。本输入样例中所用的图如下所示:输入描述第一行输入两个值,第一个是图中顶点的个数,第二个是图中边的条数第二行输入各顶点的信息,即输入每个顶点字符第三行开始输入每条边,每条边的形式为两个顶点的序号,中间以空格隔开,输入完一条边换行输出描述首先输出图的顶点信息,输出完毕换行接着输出图的邻接矩阵,假如图中有n个顶点,则输出形式为n行n列的邻接矩阵,输出..原创 2021-10-29 20:22:42 · 746 阅读 · 0 评论 -
[D-OJ练习] 求一个无向图的连通分量(两种写法)
已知无向图的顶点为字符型,要求采用邻接矩阵表示,图中顶点序号按字符顺序排列,从键盘输入图中顶点的个数、边的条数、顶点的信息和边的组成等。(注意:判断一个无向图是否连通) 求一个无向图的连通分量。输入描述第一行输入无向图的顶点数和边的条数,以空格隔开第二行输入每个顶点的数据,中间没有空格第三行输入每条边,每条边的格式为i j,中间有空格,所有边占一行输出描述输出该无向图的连通分量,占一行输入样例5 5ABCDE0 1 0 4 1 2 2 3 3 4输出样..原创 2021-10-27 14:30:14 · 582 阅读 · 0 评论 -
[D-OJ 练习] (取余优化) 判断一个字符串不区分大小写是否回文
输入描述输入一个字符串,以#号结束,不包含空格,占一行输出描述判断字符串不区分大小写是否回文,是输出YES,否则输出NO。输入样例MadaDAm#输出样例YES写的时候在判断大小写上有了一些想法,可以省去一些步骤,根据的是大小写字母的ASCII码值差为32,所以我们不必像下面这样特意判断 ...他们各自究竟是大写还是小写,也不必判断字符串的大小为奇还是偶,否则遇到abCba 这类的便会出问题...啰嗦且不完备的写法???? if((s[i]原创 2021-10-21 23:13:17 · 632 阅读 · 0 评论 -
[D-OJ练习] 求二叉树的深度
采用先序法建立一棵二叉树,设计求该二叉树的深度,二叉树的数据域类型为字符型,扩展二叉树的叶子结点用‘#’表示,要求可以求多棵二叉树的深度,当二叉树的深度为0时程序结束。输入描述循环输入多棵扩展二叉树的先序遍历序列,每棵树占一行,以回车结束,每棵二叉树中结点之间以空格隔开输出描述输出各二叉树的深度,每次输出后面都换行输入样例A B # # C D # E # F # # G H # I K # # # #A B D H # # I #...原创 2021-10-12 20:46:44 · 889 阅读 · 0 评论 -
[D-OJ练习] 二叉树的基本操作
设计二叉树类,能够对二叉树进行先序、中序、后序和层序遍历,遍历的操作为输出结点的值,设计主函数,输入一棵二叉树,按先序、中序、后序、层序的遍历顺序输出结点的值。二叉树的结点数不超过20。输入描述输入数据只有一组, 二叉树的结点均为一个数字, 数据为0代表当前结点为空。输入结点的值按照二叉树的先序遍历顺序, 比如输入:1 2 4 0 0 5 0 0 3 0 6 0 0,0表示空,输入的数字之间由空格分隔。输出描述输出先序、中序、后序和层序遍历二叉树得到的序列,各占一行,同一...原创 2021-10-12 20:30:52 · 716 阅读 · 0 评论 -
[D-OJ练习] 栈的链式存储结构与操作
请你定义一个链栈,可以对链栈进行“将某个元素入栈”、“弹出栈顶元素”、“取栈顶元素(不删除)”、“判断栈是否为空”、“清空栈”等操作。键盘输入一些命令,可以执行上述操作。本题中,栈的元素为字符。输入描述各个命令以及相关数据的输入格式如下:将某个元素入栈:P,接下来一行是要入栈的元素弹出栈顶元素:D取栈顶元素(不删除):G清空栈:T判断栈是否为空操作:Y当输入的命令为E时,程序结束输出描述当输入的命令为Y时,请输出栈是否为空,如果栈为空输出Yes,栈不空...原创 2021-09-25 16:51:26 · 744 阅读 · 0 评论 -
[D-OJ练习] 银行业务队列简单模拟
设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍,即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口优先输出。输入描述输入为一行正整数,其中第1个数字N(<=1000)位顾客总数,后面跟着N位顾客的编号。编号为奇数的顾客需要到A窗口办理业务,为偶数的顾客则取B窗口。数字间以空格分隔。输出描述按业务处理完的顺序..原创 2021-09-25 15:04:25 · 352 阅读 · 0 评论 -
[D-OJ练习] 判断一个字符串中括号是否匹配
从键盘读入一个字符串,其中只含有() {} [ ],判断该字符串中的每种括号是否成对出现。提示:可借助栈来实现,括号必须配对出现,如()[ ]{},这是匹配的括号,如([{])},这是不匹配的括号(中间无空格)。输入描述输入一个字符串(中间不包含空格)输出描述匹配输出yes,否则输出no输入样例(([{}]))输出样例yes#include<iostream>#include<cstdio>#include<s...原创 2021-09-25 11:27:44 · 523 阅读 · 0 评论 -
[D-OJ练习] 将十进制数转换成八进制数
将三个十进制数分别转换成八进制数,建议使用栈来实现。输入描述输入三个十进制数,每个占一行。输出描述输出每个十进制数所对应的八进制数,每个占一行。输入样例25618915输出样例40027517#include<iostream>using namespace std;void Trans(int n){ if(n == 0) return ; int m = n%8; n /= 8; Trans(n); cou..原创 2021-09-25 10:36:54 · 580 阅读 · 0 评论 -
[D-OJ练习] 栈的顺序存储结构与操作
请你定义一个顺序栈,可以对顺序栈进行“将某个元素入栈”、“弹出栈顶元素”、“取栈顶元素(不删除)”、“判断栈是否为空”、“清空栈”等操作。键盘输入一些命令,可以执行上述操作。本题中,顺序栈元素为字符,顺序栈的最大长度为10。输入描述各个命令以及相关数据的输入格式如下: 将某个元素入栈:P,接下来一行是要入栈的元素弹出栈顶元素:D取栈顶元素(不删除):G 清空栈:T判断栈是否为空操作:Y当输入的命令为E时,程序结束输出描述当输入的命令为Y时,输出栈是否为空,如果..原创 2021-09-24 17:44:41 · 669 阅读 · 0 评论 -
[D-OJ练习] 队列的顺序存储结构与操作
请定义一个顺序队列,可以对队列进行“入队”、“出队”、“清空队列”、“获取队首元素”等操作。键盘输入一些命令,可以执行上述操作。本题中,队列的元素为字母, 队列的最大元素个数为100。输入描述输入各个命令,它们对应的格式如下:入队:E a,a代表入队的元素,这里E和元素之间用空格分隔。清空队列:C获取队头元素:当输入的命令为D时,输出出队的元素值;当输入的命令是G时,输出当前队首元素值;如果没有元素可出队或可取,输出描述当输入的命令为D时,输出出队的元素值;...原创 2021-09-24 17:42:29 · 674 阅读 · 0 评论 -
[D-OJ练习] 队列的链式存储结构与操作
请定义一个链式队列,可以对队列进行“入队”、“出队”、“清空队列”、“获取队首元素”等操作。键盘输入一些命令,可以执行上述操作。本题中,队列的元素为字符。输入描述输入各个命令,它们对应的格式如下: 入队:E a,a代表入队的元素,这里E和元素之间用空格分隔。 清空队列:C 获取队头元素:G 队头元素出队列:D 当输入的命令为Q时,程序结束。输出描述当输入的命令为D时,输出出队的元素值; 当输入的命令是G时,输出当前队首元素值; 如果没有元素可出队或可取,请输出None;..原创 2021-09-24 12:40:00 · 615 阅读 · 2 评论 -
[D-OJ练习] 线性表的链式存储结构与操作
请你定义一个链表,可以对链表进行“在某个元素之前插入一些元素”、“删除某个位置的元素”、“查找某元素”、“获取某个位置的元素”、“遍历输出所有元素”、“求链表的长度”等操作。键盘输入一些命令,可以执行上述操作。本题中,链表元素为整数,链表的第一个元素位置为1,链表的最大长度为20。输入描述各个命令以及相关数据的输入格式如下: 在某个位置之前插入操作的命令:I,接下来的一行是插入的元素个数n,下面是n行数据,每行数据有两个值,分别代表插入位置与插入的元素值 查找某个元素:S x,x是要查...原创 2021-09-23 23:58:30 · 897 阅读 · 0 评论 -
[D-OJ练习] 约瑟夫环问题
设有编号为1,2,…,n的n个人围成一个圈,给定一个密码m,从第一个人开始报数,报到m是停止报数,报m的人出圈,再从他的下一个起重新报数,报到m时停止报数,报m的出圈,…,如下下去,直到所有人全部出圈为止。键盘输入n和m的值,请设计程序输出n个人出圈的次序。输入描述输入初始圈中的人数n,占一行输入密码m,占一行输出描述输出出圈的n个人的次序,以空格隔开,最后一个元素后有空格输入样例103输出样例3 6 9 2 7 1 8 5 10 4 #include原创 2021-09-23 23:54:13 · 372 阅读 · 0 评论 -
[D-OJ练习] 集合的运算
已知A和B均是由整型数据组成的集合,使用线性表表示集合,设计算法求集合A、B的交集和并集,功能包括输入集合A,输入集合B,求A和B的并集,求A和B的交集。本题中,线性表的第一个元素位置为1,线性表的最大长度为20。输入描述各个命令以及相关数据的输入格式如下: 输入集合A:A,接下来的一行是要输入的集合元素个数n,下面是n行数据,每行数据有一个值,代表集合元素值 输入集合B:B,接下来的一行是要输入的集合元素个数n,下面是n行数据,每行数据有一个值,代表集合元素值 求集合A和B的并集...原创 2021-09-23 23:50:15 · 792 阅读 · 0 评论 -
[D-OJ练习] 一元多项式的运算
已知一元多项式:A(x)=a0+a1x+a2x2+a3x3+….anxn, B(x)= b0+b1x+b2x2+b3x3+….bmxm设计算法实现C(x)=A(x)+B(x)。功能包括输入多项式A,输入多项式B,求A和B的和,显示求和后的结果等操作。本题中,链表的第一个元素位置为1,链表的数据域格式为coef exp 其中coef为系数,exp为指数。输入描述各个命令以及相关数据的输入格式如下: 输入多项式A:A,接下来的n行是要输入的多项式,每一行数据有两个值,第一个值代...原创 2021-09-23 23:43:26 · 975 阅读 · 0 评论 -
[D-OJ练习] 线性表的顺序存储结构与操作
请你定义一个顺序表,可以对顺序表进行如下操作:在某个元素之前插入一些元素 删除某个位置的元素 查找某元素 获取某个位置的元素 遍历输出所有元素键盘输入一些命令,可以执行上述操作。本题中,顺序表元素为整数,顺序表的第一个元素位置为1,顺序表的最大长度为20。输入描述各个命令以及相关数据的输入格式如下:在某个位置之前插入操作的命令:I,接下来的一行是插入的元素个数n,下面是n行数据,每行数据有两个值,分别代表插入位置与插入的元素值 查找某个元素:S x,x是要查找的元...原创 2021-09-23 23:47:17 · 707 阅读 · 0 评论