数据结构与算法
关于这门课的练习汇总
deargakki
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
DS二叉排序树之创建和插入
题目描述给出一个数据序列,建立二叉排序树,并实现插入功能对二叉排序树进行中序遍历,可以得到有序的数据序列输入第一行输入t,表示有t个数据序列第二行输入n,表示首个序列包含n个数据第三行输入n个数据,都是自然数且互不相同,数据之间用空格隔开第四行输入m,表示要插入m个数据从第五行起,输入m行,每行一个要插入的数据,都是自然数且和前面的数据不等以此类推输入下一个示例输出第一行输出有序的数据序列,对二叉排序树进行中序遍历可以得到从第二行起,输出插入第m个数据后的有序序列,输出m行以此类推原创 2020-12-13 21:26:24 · 481 阅读 · 0 评论 -
DS树--二叉树高度
题目描述给出一棵二叉树,求它的高度。二叉树的创建采用前面实验的方法。注意,二叉树的层数是从1开始输入第一行输入一个整数t,表示有t个二叉树第二行起输入每个二叉树的先序遍历结果,空树用字符‘0’表示,连续输入t行输出每行输出一个二叉树的高度解题代码#include <iostream>using namespace std;class Tnode{ char name; Tnode *lChild, *rChild;public: Tnode()原创 2020-12-06 10:01:35 · 441 阅读 · 0 评论 -
DS二叉树--左叶子数量
题目描述计算一颗二叉树包含的叶子结点数量。左叶子是指它的左右孩子为空,而且它是父亲的左孩子提示:可以用三叉链表法,也可以用现有算法对两层结点进行判断建树方法采用“先序遍历+空树用0表示”的方法输入第一行输入一个整数t,表示有t个测试数据第二行起输入二叉树先序遍历的结果,空树用字符‘0’表示,输入t行输出逐行输出每个二叉树的包含的左叶子数量解题代码#include <iostream>using namespace std;class Tnode{ char n原创 2020-12-06 09:37:11 · 876 阅读 · 0 评论 -
DS二叉树—二叉树构建与遍历(不含框架)
题目描述给定一颗二叉树的逻辑结构如下图,(先序遍历的结果,空树用字符‘#’表示,例如AB#C##D##),建立该二叉树的二叉链式存储结构,并输出该二叉树的先序遍历、中序遍历和后序遍历结果。输入第一行输入一个整数t,表示有t个二叉树第二行起输入每个二叉树的先序遍历结果,空树用字符‘#’表示,连续输入t行。输出输出每个二叉树的先序遍历、中序遍历和后序遍历结果。解题代码#include <iostream>using namespace std;class Tnode{原创 2020-12-05 17:24:38 · 1055 阅读 · 0 评论 -
DS图—图的最短路径(不含代码框架)
题目描述给出一个图的邻接矩阵,输入顶点v,用迪杰斯特拉算法求顶点v到其它顶点的最短路径。输入第一行输入t,表示有t个测试实例第二行输入顶点数n和n个顶点信息第三行起,每行输入邻接矩阵的一行,以此类推输入n行第i个结点与其它结点如果相连则为距离,无连接则为0,数据之间用空格隔开。第四行输入v0,表示求v0到其他顶点的最短路径距离以此类推输入下一个示例输出对每组测试数据,输出:每行输出v0到某个顶点的最短距离和最短路径每行格式:v0编号-其他顶点编号-最短路径值----[最短路径]。没有原创 2020-12-04 16:30:07 · 2102 阅读 · 0 评论 -
F. 无线网络 (Ver. I)
F. 无线网络 (Ver. I)题目描述在东南亚发生了地震。 ACM(Asia Cooperated Medical team)已经用笔记本建立了无线网络,但是由于一次余震,网络中的所有计算机都损坏了。 计算机一个接一个地修复,网络逐渐开始工作。 由于硬件限制,每台计算机只能直接与距离它不远的计算机进行通信。 但是,每台计算机都可以被视为两台计算机之间通信的中介,也就是说,如果计算机A和计算机B可以直接通信,计算机C可以与计算机A进行通信,则计算机C和计算机B可以进行通信。在修复网络的过程中,工作人员原创 2020-12-03 17:10:55 · 419 阅读 · 0 评论 -
DS堆栈--括号匹配
题目描述处理表达式过程中需要对括号匹配进行检验,括号匹配包括三种:“(”和“)”,“[”和“]”,“{”和“}”。例如表达式中包含括号如下:( ) [ ( ) ( [ ] ) ] { }1 2 3 4 5 6 7 8 9 10 11 12从上例可以看出第1和第2个括号匹配,第3和第10个括号匹配,4和5匹配,6和9匹配,7和8匹配,11和12匹配。从中可以看到括号嵌套的的情况是比较复杂的,使用堆栈可以很方便的处理这种括号匹配检验,可以遵循以下规则:1、 当接收第1个左括号,表示新的一组匹配检查开原创 2020-10-31 15:55:27 · 955 阅读 · 0 评论 -
B. DS堆栈--行编辑
题目描述使用C++的STL堆栈对象,编写程序实现行编辑功能。行编辑功能是:当输入#字符,则执行退格操作;如果无字符可退就不操作,不会报错。本程序默认不会显示#字符,所以连续输入多个#表示连续执行多次退格操作。每输入一行字符打回车则表示字符串结束。注意:必须使用堆栈实现,而且结果必须是正序输出。输入第一行输入一个整数t,表示有t行字符串要输入第二行起输入一行字符串,共输入t行输出每行输出最终处理后的结果,如果一行输入的字符串经过处理后没有字符输出,则直接输出NULL示例输入4china原创 2020-10-31 15:21:24 · 953 阅读 · 0 评论
分享