
数据结构
bianchengfive
期末复习用
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
*15-D. DS哈希查找--Trie树
实验15-哈希查找与排序-题目描述Trie树又称单词查找树,是一种树形结构,如下图所示。它是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。输入的一组单词,创建Trie树。输入字符串,计算以该字符串为公共前缀的单词数。(提示:树结点有26个指针,指向单词的下一字母结点。)输入测试数据有多组每组测试数据格式为:第一行:原创 2021-12-23 10:53:08 · 896 阅读 · 0 评论 -
15-E. DS内排—直插排序
实验15-哈希查找与排序-题目描述给定一组数据,使用直插排序完成数据的升序排序。–程序要求–若使用C++只能include一个头文件iostream;若使用C语言只能include一个头文件stdio程序中若include多过一个头文件,不看代码,作0分处理不允许使用第三方对象或函数实现本题的要求输入数据个数n,n个数据输出直插排序的每一趟排序结果输入样例7 34 23 677 2 1 453 3输出样例23 34 677 2 1 453 323 34 677 2 1 453原创 2021-12-23 10:53:19 · 700 阅读 · 1 评论 -
15-C. DS哈希查找—二次探测再散列
实验15-哈希查找与排序-题目描述定义哈希函数为H(key) = key%11。输入表长(大于、等于11),输入关键字集合,用二次探测再散列构建哈希表,并查找给定关键字。输入测试次数t每组测试数据格式如下:哈希表长m、关键字个数nn个关键字查找次数kk个待查关键字输出对每组测试数据,输出以下信息:构造的哈希表信息,数组中没有关键字的位置输出NULL对k个待查关键字,分别输出:0或1(0—不成功,1—成功)、比较次数、查找成功的位置(从1开始)输入样例112 1022 19原创 2021-12-23 10:53:27 · 1484 阅读 · 1 评论 -
15-B. DS哈希查找—线性探测再散列
实验15-哈希查找与排序题目描述定义哈希函数为H(key) = key%11,输入表长(大于、等于11)。输入关键字集合,用线性探测再散列构建哈希表,并查找给定关键字。–程序要求–若使用C++只能include一个头文件iostream;若使用C语言只能include一个头文件stdio程序中若include多过一个头文件,不看代码,作0分处理不允许使用第三方对象或函数实现本题的要求输入测试次数t每组测试数据为:哈希表长m、关键字个数nn个关键字查找次数kk个待查关键字输出对每原创 2021-12-22 12:59:47 · 960 阅读 · 0 评论 -
15-A. DS哈希查找--链地址法
实验15-哈希查找与排序-题目描述给出一个数据序列,建立哈希表,采用求余法作为哈希函数,模数为11,哈希冲突用链地址法和表头插入如果首次查找失败,就把数据插入到相应的位置中实现哈希查找功能输入第一行输入n,表示有n个数据第二行输入n个数据,都是自然数且互不相同,数据之间用空格隔开第三行输入t,表示要查找t个数据从第四行起,每行输入一个要查找的数据,都是正整数输出每行输出对应数据的查找结果输入样例611 23 39 48 75 626395252636352输出样例原创 2021-12-22 12:57:02 · 902 阅读 · 1 评论 -
14-E. DS二叉树判断--同一棵二叉树?
14-动态查找与查找二叉树-题目描述二叉树分别以数组存储方式创建、以先序遍历序列创建。输入二叉树的数组存储、先序遍历结果,判断根据它们创建的二叉树是否是同一棵二叉树。输入测试次数t每组测试数据两行:第一行:二叉树的数组存储(英文字母表示树结点,#表示空树)第二行:二叉树的先序遍历结果(英文字母表示树结点,#表示空树)输出对每组测试数据,如果两种方式创建的是同一棵二叉树,输出YES,否则,输出NO。输入样例3ABCDEABD##E##CABC##DE####W##FAB##CDW原创 2021-12-18 18:44:09 · 870 阅读 · 0 评论 -
14-D. DS查找—二叉树平衡因子
14-动态查找与查找二叉树-题目描述二叉树用数组存储,将二叉树的结点数据依次自上而下,自左至右存储到数组中,一般二叉树与完全二叉树对比,比完全二叉树缺少的结点在数组中用0来表示。计算二叉树每个结点的平衡因子,并按后序遍历的顺序输出结点的平衡因子。–程序要求–若使用C++只能include一个头文件iostream;若使用C语言只能include一个头文件stdio程序中若include多过一个头文件,不看代码,作0分处理不允许使用第三方对象或函数实现本题的要求输入测试次数t每组测试数据一原创 2021-12-18 18:26:52 · 504 阅读 · 0 评论 -
14-C. DS二叉排序树之删除
14-动态查找与查找二叉树-题目描述给出一个数据序列,建立二叉排序树,并实现删除功能对二叉排序树进行中序遍历,可以得到有序的数据序列输入第一行输入t,表示有t个数据序列第二行输入n,表示首个序列包含n个数据第三行输入n个数据,都是自然数且互不相同,数据之间用空格隔开第四行输入m,表示要删除m个数据从第五行起,输入m行,每行一个要删除的数据,都是自然数以此类推输入下一个示例输出第一行输出有序的数据序列,对二叉排序树进行中序遍历可以得到从第二行起,输出删除第m个数据后的有序序列,输出m原创 2021-12-18 18:05:04 · 921 阅读 · 0 评论 -
14-B. DS二叉排序树之查找
14-动态查找与查找二叉树-题目描述给出一个数据序列,建立二叉排序树,并实现查找功能对二叉排序树进行中序遍历,可以得到有序的数据序列输入第一行输入t,表示有t个数据序列第二行输入n,表示首个序列包含n个数据第三行输入n个数据,都是自然数且互不相同,数据之间用空格隔开第四行输入m,表示要查找m个数据从第五行起,输入m行,每行一个要查找的数据,都是自然数以此类推输入下一个示例输出第一行输出有序的数据序列,对二叉排序树进行中序遍历可以得到从第二行起,输出查找结果,如果查找成功输出查找次数原创 2021-12-18 17:56:00 · 652 阅读 · 0 评论 -
14-A. DS二叉排序树之创建和插入
14-动态查找之二叉排序树-题目描述给出一个数据序列,建立二叉排序树,并实现插入功能对二叉排序树进行中序遍历,可以得到有序的数据序列输入第一行输入t,表示有t个数据序列第二行输入n,表示首个序列包含n个数据第三行输入n个数据,都是自然数且互不相同,数据之间用空格隔开第四行输入m,表示要插入m个数据从第五行起,输入m行,每行一个要插入的数据,都是自然数且和前面的数据不等以此类推输入下一个示例输出第一行输出有序的数据序列,对二叉排序树进行中序遍历可以得到从第二行起,输出插入第m个数据后原创 2021-12-18 17:52:00 · 1004 阅读 · 0 评论 -
13-B. 图综合练习--拓扑排序
13-拓扑排序以及查找练习-题目描述已知有向图,顶点从0开始编号,求它的求拓扑有序序列。拓扑排序算法:给出有向图邻接矩阵1.逐列扫描矩阵,找出入度为0且编号最小的顶点v2.输出v,并标识v已访问3.把矩阵第v行全清0重复上述步骤,直到所有顶点输出为止–程序要求–若使用C++只能include一个头文件iostream;若使用C语言只能include一个头文件stdio程序中若include多过一个头文件,不看代码,作0分处理不允许使用第三方对象或函数实现本题的要求输入第一行输入一个原创 2021-12-13 12:19:29 · 1269 阅读 · 0 评论 -
13-A. DS图—图的最短路径(不含代码框架)
13-拓扑排序以及查找练习-题目描述给出一个图的邻接矩阵,输入顶点v,用迪杰斯特拉算法求顶点v到其它顶点的最短路径。输入第一行输入t,表示有t个测试实例第二行输入顶点数n和n个顶点信息第三行起,每行输入邻接矩阵的一行,以此类推输入n行第i个结点与其它结点如果相连则为距离,无连接则为0,数据之间用空格隔开。第四行输入v0,表示求v0到其他顶点的最短路径距离以此类推输入下一个示例输出对每组测试数据,输出:每行输出v0到某个顶点的最短距离和最短路径每行格式:v0编号-其他顶点编号-最短路原创 2021-12-13 12:15:08 · 1032 阅读 · 0 评论 -
13-C. DS静态查找之顺序查找
13-拓扑排序以及查找练习-题目描述给出一个队列和要查找的数值,找出数值在队列中的位置,队列位置从1开始要求使用带哨兵的顺序查找算法输入第一行输入n,表示队列有n个数据第二行输入n个数据,都是正整数,用空格隔开第三行输入t,表示有t个要查找的数值第四行起,输入t个数值,输入t行输出每行输出一个要查找的数值在队列的位置,如果查找不成功,输出字符串error输入样例833 66 22 88 11 27 44 553221199输出样例35error#include&l原创 2021-12-13 10:49:17 · 911 阅读 · 0 评论 -
13-D. DS静态查找之折半查找
13-拓扑排序以及查找练习-题目描述给出一个队列和要查找的数值,找出数值在队列中的位置,队列位置从1开始要求使用折半查找算法输入第一行输入n,表示队列有n个数据第二行输入n个数据,都是正整数,用空格隔开第三行输入t,表示有t个要查找的数值第四行起,输入t个数值,输入t行输出每行输出一个要查找的数值在队列的位置,如果查找不成功,输出字符串error输入样例811 22 33 44 55 66 77 883228899输出样例28error#include<io原创 2021-12-13 10:48:30 · 737 阅读 · 0 评论 -
13-E. DS静态查找之顺序索引查找
13-拓扑排序以及查找练习-题目描述给出一个队列和要查找的数值,找出数值在队列中的位置,队列位置从1开始要求使用顺序索引查找算法,其中索引表查找和块内查找都采用不带哨兵、从头开始的顺序查找方法。输入第一行输入n,表示主表有n个数据第二行输入n个数据,都是正整数,用空格隔开第三行输入k,表示主表划分为k个块,k也是索引表的长度第四行输入k个数据,表示索引表中每个块的最大值第五行输入t,表示有t个要查找的数值第六行起,输入t个数值,输入t行输出每行输出一个要查找的数值在队列的位置和查找次原创 2021-12-13 10:47:31 · 790 阅读 · 1 评论 -
12-E. 关键路径-STL版
12-图连通与最小生成树-题目描述给定有向图无环的边信息,求每个顶点的最早开始时间、最迟开始时间。// 参考代码#include <iostream>#include <vector>#include <string>#include <queue>using namespace std;class Vertex {public: int indexNo; bool hasEnterQueue; int early原创 2021-12-13 00:51:30 · 1193 阅读 · 1 评论 -
*12-【20分】D. 货币套汇(图路径)-
12-图连通与最小生成树-题目描述套汇是指利用货币汇兑率的差异将一个单位的某种货币转换为大于一个单位的同种货币。例如,假定1 美元可以买0.7 英镑,1 英镑可以买9.5 法郎,1法郎可以买到0.16美元。通过货币兑换,一个商人可以从1 美元开始买入,得到0.7×9.5×0.16=1.064美元,从而获得6.4%的利润。 给定n种货币c1 ,c2 ,… ,cn的有关兑换率,试设计一个有效算法,确定货币间是否存在套汇的可能性。提示:判断图上是否出现正环,即环上所有的边相乘大于1输入第一行:测试数据组原创 2021-12-13 00:50:10 · 573 阅读 · 0 评论 -
12-C. DS图—图非0面积
12-图连通与最小生成树-题目描述编程计算由"1"围成的下列图形的面积。面积计算方法是统计"1"所围成的闭合曲线中"0"点的数目。如图所示,在10*10的二维数组中,"1"围住了15个点,因此面积为15。提示:queue输入测试次数t每组测试数据格式为:数组大小m,n一个由0和1组成的m*n的二维数组输出对每个二维数组,输出符号"1"围住的"0"的个数,即围成的面积。假设一定有1组成的闭合曲线,但不唯一。输入样例210 100 0 0 0 0 0 0 0 0 00 0 0 0原创 2021-12-13 00:45:20 · 516 阅读 · 0 评论 -
12-B. DS图—图的连通分量
12-图连通与最小生成树-题目描述输入无向图顶点信息和边信息,创建图的邻接矩阵存储结构,计算图的连通分量个数。输入测试次数t每组测试数据格式如下:第一行:顶点数 顶点信息第二行:边数第三行开始,每行一条边信息输出每组测试数据输出,顶点信息和邻接矩阵信息输出图的连通分量个数,具体输出格式见样例。每组输出直接用空行分隔。输入样例34 A B C D2A BA C6 V1 V2 V3 V4 V5 V65V1 V2V1 V3V2 V4V5 V6V3 V58 1 2原创 2021-12-13 00:42:31 · 363 阅读 · 0 评论 -
12-A. DS图—最小生成树
实验12-图连通与最小生成树-题目描述根据输入创建无向网。分别用Prim算法和Kruskal算法构建最小生成树。(假设:输入数据的最小生成树唯一。)输入顶点数nn个顶点边数mm条边信息,格式为:顶点1顶点2权值Prim算法的起点v输出输出最小生成树的权值之和对两种算法,按树的生长顺序,输出边信息(Kruskal中边顶点按数组序号升序输出)输入样例6v1 v2 v3 v4 v5 v610v1 v2 6v1 v3 1v1 v4 5v2 v3 5v2 v5 3v3 v4原创 2021-12-13 00:38:27 · 1465 阅读 · 0 评论 -
11-D. DS图—图的邻接矩阵存储及度计算
实验11-图遍历与存储结构-题目描述假设图用邻接矩阵存储。输入图的顶点信息和边信息,完成邻接矩阵的设置,并计算各顶点的入度、出度和度,并输出图中的孤立点(度为0的顶点)–程序要求–若使用C++只能include一个头文件iostream;若使用C语言只能include一个头文件stdio程序中若include多过一个头文件,不看代码,作0分处理不允许使用第三方对象或函数实现本题的要求输入测试次数T,每组测试数据格式如下:图类型 顶点数 (D—有向图,U—无向图)顶点信息边数每行一条原创 2021-12-08 20:00:12 · 1388 阅读 · 0 评论 -
11-C. 图综合练习--构建邻接表
实验11-图遍历与存储结构-题目描述已知一有向图,构建该图对应的邻接表。邻接表包含数组和单链表两种数据结构,其中每个数组元素也是单链表的头结点,数组元素包含两个属性,属性一是顶点编号info,属性二是指针域next指向与它相连的顶点信息。单链表的每个结点也包含两个属性,属性一是顶点在数组的位置下标,属性二是指针域next指向下一个结点。输入第1行输入整数t,表示有t个图第2行输入n和k,表示该图有n个顶点和k条弧。第3行输入n个顶点。第4行起输入k条弧的起点和终点,连续输入k行以此类推输原创 2021-12-08 19:45:34 · 1131 阅读 · 0 评论 -
11-B. DS图遍历--广度优先搜索
实验11-图遍历与存储结构-题目描述给出一个图的邻接矩阵,对图进行深度优先搜索,从顶点0开始注意:图n个顶点编号从0到n-1代码框架如下:输入第一行输入t,表示有t个测试实例第二行输入n,表示第1个图有n个结点第三行起,每行输入邻接矩阵的一行,以此类推输入n行第i个结点与其他结点如果相连则为1,无连接则为0,数据之间用空格隔开以此类推输入下一个示例输出每行输出一个图的广度优先搜索结果,结点编号之间用空格隔开输入样例240 0 1 10 0 1 11 1 0 11 1原创 2021-12-08 19:33:10 · 505 阅读 · 0 评论 -
11-A. DS图遍历--深度优先搜索
11-图遍历与存储结构-题目描述给出一个图的邻接矩阵,对图进行深度优先搜索,从顶点0开始注意:图n个顶点编号从0到n-1代码框架如下:输入第一行输入t,表示有t个测试实例第二行输入n,表示第1个图有n个结点第三行起,每行输入邻接矩阵的一行,以此类推输入n行第i个结点与其他结点如果相连则为1,无连接则为0,数据之间用空格隔开以此类推输入下一个示例输出每行输出一个图的深度优先搜索结果,结点编号之间用空格隔开输入样例240 0 1 10 0 1 11 1 0 11 1 1原创 2021-12-08 19:24:49 · 464 阅读 · 0 评论 -
08-E. 可重叠子串 (Ver. I)
08-数据结构阶段复习一题目描述给定一个字符串(模式串)和一些待查找的字符串,求每个待查找字符串在模式串中出现的次数(可重叠)输入测试数据有多组(测试组数 <= 5),第一行包括一个字符串P,长度不超过105,且非空串第二行包括一个整数N,代表待查找的字符串数量 (1 <= N <= 5)接下来的N行,每一行包括一个待查找的字符串,其长度不超过50,且非空串输出对于每组测试数据,输出每个待查找字符串出现的次数,具体输出见样例输入样例aabbcc3aabbc原创 2021-12-06 12:57:41 · 1597 阅读 · 0 评论 -
08-D. 双向队列(deque)
08-数据结构阶段复习一题目描述双向队列只能在队尾和队头做出队,入队的操作。现在给你一系列的操作,请输出最后队列的状态。命令格式:LIN X X表示一个整数,命令代表队头进队操作;RIN X 表示X队尾进队操作;ROUT 表示队尾删除一个元素的操作,当队列为空时,命令不合法;LOUT 表示队头删除一个元素的操作,当队列为空时,命令不合法。输入第一行包含一个整数M(M<=10000),表示有M个操作;以下M行每行包含一条命令;命令可能不合法,对于不合法的命令,请在输出中处原创 2021-12-06 12:34:20 · 227 阅读 · 0 评论 -
08-C. DS堆栈--字符替换
08-数据结构阶段复习一题目描述在一个行编辑处理程序中,用户将输入一行字符。若用户输入#,表示将#之前的字符替换为@,#本身不算字符输入。请使用C++自带的stack栈进行编程。必须使用堆栈来实现,其他方法0分!stack类使用的参考代码n包含头文件:#include n创建一个堆栈对象s(注意stack是模板类):stack s;//堆栈的数据类型是字符型n把一个字符ct压入堆栈:s.push(ct);n把栈顶元素弹出:s.pop();n获取栈顶元素,放入变量c2:c2 =s.top原创 2021-12-06 12:23:27 · 190 阅读 · 0 评论 -
08-B. DS单链表--结点交换
08-数据结构阶段复习一题目描述用C++实现含头结点的单链表,然后实现单链表的两个结点交换位置。注意不能简单交换两个结点包含数据,必须通过修改指针来实现两个结点的位置交换交换函数定义可以参考:swap(int pa, int pb) //pa和pb表示两个结点在单链表的位置序号swap (ListNode * p, ListNode * q) //p和q表示指向两个结点的指针输入第1行先输入n表示有n个数据,接着输入n个数据第2行输入要交换的两个结点位置第3行输入要交换的两个结点位原创 2021-12-06 12:19:17 · 670 阅读 · 0 评论 -
08-A. 数组最大值(指针作为函数参数)
08-数据结构阶段复习1-题目描述写函数**void search(int *num,int n,int nmax,int nmaxindex)实现在含n各元素的数组num中查找最大值及其第一次出现下标,分别通过指针nmax,nmaxindex返回。写函数void input(int *num,int n),输入数组num的n个数。主函数输入数据,调用input, search, 输出最大值及其第一次出现下标。不可以在主函数中计算。输入测试次数t每组测试数据一行: 数据个数n(n>1)原创 2021-12-06 11:54:11 · 1345 阅读 · 0 评论 -
10-E. DS森林叶子编码
10-赫夫曼编码及综合-题目描述给定一组森林,编写程序生成对应的二叉树,输出这颗二叉树叶结点对应的二进制编码.规定二叉树的左边由0表示,二叉树的右边由1表示。输入N B 表示N个树,每结点最多B个分支第2行至第N+1行,每个树的先序遍历输出每行表示一个叶结点对应的二进制编码.输入样例3 3A B 0 0 0 C 0 0 0 D 0 0 0E F 0 0 0 0 0G H 0 0 0 I J 0 0 0 0 0 00 1 11 01 1 0 1 0->如果把森林中的第二原创 2021-12-06 11:43:23 · 2027 阅读 · 0 评论 -
10-D. DS二叉树--基于数组存储的构建
10-哈夫曼编码及综合题目描述任意二叉树可以根据完全二叉树性质保存在一个数组中。已知二叉树的数组存储,用程序构建该二叉树。提示:用递归方法或非递归都可以递归方法的代码框架如下:输入第一行输入一个整数t,表示有t个测试数据第二行起输入二叉树的数组存储结果,空树用字符‘0’表示,输入t行数组的数据由大写字母和0表示输出逐行输出每个二叉树的先序结果输入样例3ABC0DABCDEF000GABEC0F0D0ABDCABDEGCFABCDEF在这里插入代码原创 2021-12-06 11:18:27 · 318 阅读 · 0 评论 -
10-C. DS树--带权路径和
10-哈夫曼编码及综合题目描述计算一棵二叉树的带权路径总和,即求赫夫曼树的带权路径和。已知一棵二叉树的叶子权值,该二叉树的带权案路径和APL等于叶子权值乘于根节点到叶子的分支数,然后求总和。如下图中,叶子都用大写字母表示,权值对应为:A-7,B-6,C-2,D-3树的带权路径和 = 71 + 62 + 23 + 33 = 34本题二叉树的创建参考前面的方法输入第一行输入一个整数t,表示有t个二叉树第二行输入一棵二叉树的先序遍历结果,空树用字符‘0’表示,注意输入全是英文字母和0原创 2021-11-29 12:56:29 · 839 阅读 · 0 评论 -
10-B. DS二叉树--赫夫曼树解码(含代码框架)
10-哈夫曼编码及综合题目描述已知赫夫曼编码算法和程序,在此基础上进行赫夫曼解码在赫夫曼树的类定义中增加了一个公有方法:int Decode(const string codestr, char txtstr[]);//输入编码串codestr,输出解码串txtstr该方法如果解码成功则返回1,解码失败则返回-1,本程序增加宏定义ok表示1,error表示-1解码方法的代码框架如下:输入第一行输入t,表示有t个测试实例第二行先输入n,表示第1个实例有n个权值,接着输入n个权值原创 2021-11-29 12:42:12 · 700 阅读 · 0 评论 -
10-A. DS二叉树--赫夫曼树的构建与编码(含代码框架)
10-赫夫曼编码及综合题目描述给定n个权值,根据这些权值构造huffman树,并进行huffman编码参考课本算法,注意数组访问是从位置1开始要求:赫夫曼的构建中,默认左孩子权值不大于右孩子权值代码框架参考如下:输入第一行输入t,表示有t个测试实例第二行先输入n,表示第1个实例有n个权值,接着输入n个权值,权值全是小于1万的正整数依此类推输出逐行输出每个权值对应的编码,格式如下:权值-编码即每行先输出1个权值,再输出一个短划线,再输出对应编码,接着下一行输入下一个权值和原创 2021-11-29 12:34:04 · 2734 阅读 · 0 评论 -
09-E. DS二叉树——二叉树之数组存储
09-二叉树遍历-题目描述二叉树可以采用数组的方法进行存储,把数组中的数据依次自上而下,自左至右存储到二叉树结点中,一般二叉树与完全二叉树对比,比完全二叉树缺少的结点就在数组中用0来表示。,如下图所示从上图可以看出,右边的是一颗普通的二叉树,当它与左边的完全二叉树对比,发现它比完全二叉树少了第5号结点,所以在数组中用0表示,同样它还少了完全二叉树中的第10、11号结点,所以在数组中也用0表示。结点存储的数据均为非负整数输入第一行输入一个整数t,表示有t个二叉树第二行起,每行输入一个原创 2021-11-11 21:59:09 · 554 阅读 · 0 评论 -
09-D. DS树--二叉树高度
09-二叉树遍历-题目描述给出一棵二叉树,求它的高度。二叉树的创建采用前面实验的方法。注意,二叉树的层数是从1开始输入第一行输入一个整数t,表示有t个二叉树第二行起输入每个二叉树的先序遍历结果,空树用字符‘0’表示,连续输入t行输出每行输出一个二叉树的高度输入样例1AB0C00D003#include<iostream>#include<string>using namespace std;class btnode{原创 2021-11-11 21:54:18 · 616 阅读 · 0 评论 -
09-C. DS二叉树——二叉树之父子结点
09-二叉树遍历-题目描述给定一颗二叉树的逻辑结构如下图,(先序遍历的结果,空树用字符‘0’表示,例如AB0C00D00),建立该二叉树的二叉链式存储结构。编写程序输出该树的所有叶子结点和它们的父亲结点输入第一行输入一个整数t,表示有t个二叉树第二行起,按照题目表示的输入方法,输入每个二叉树的先序遍历,连续输入t行输出第一行按先序遍历,输出第1个示例的叶子节点第二行输出第1个示例中与叶子相对应的父亲节点以此类推输出其它示例的结果输入样例3AB0C00D00A原创 2021-11-11 21:48:38 · 863 阅读 · 0 评论 -
09-B. DS二叉树--叶子数量
09-二叉树遍历-题目描述计算一颗二叉树包含的叶子结点数量。提示:叶子是指它的左右孩子为空。建树方法采用“先序遍历+空树用0表示”的方法,即给定一颗二叉树的先序遍历的结果为AB0C00D00,其中空节点用字符‘0’表示。则该树的逻辑结构如下图。输入第一行输入一个整数t,表示有t个测试数据第二行起输入二叉树先序遍历的结果,空树用字符‘0’表示,输入t行输出逐行输出每个二叉树的包含的叶子数量输入样例3AB0C00D00AB00C00ABC00D00E0022原创 2021-11-11 21:40:55 · 782 阅读 · 0 评论 -
07-DS队列----银行单队列多窗口模拟
07-串应用-题目描述假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。本题要求输出前来等待服务的N位顾客的平均等待时间、最长等待时间、最后完成时间。输入输入第1行给出正整数N(≤1000),为顾客总人数;随后N行,每行给出一位顾客的到达时间T和事务处理时间P,并且假设输入数据已经按到达时间先后排好了顺序;最后一行给出正整数K(≤10),为开设的营业窗口数原创 2021-10-28 16:33:09 · 671 阅读 · 0 评论 -
07-C. DS串应用—最长重复子串
07-串应用-题目描述求串的最长重复子串长度(子串不重叠)。例如:abcaefabcabc的最长重复子串是串abca,长度为4。输入测试次数tt个测试串输出对每个测试串,输出最长重复子串长度,若没有重复子串,输出-1.输入样例3abcaefabcabcszu0123szuszuabcefg43-1后台会测试一组baaaacaaaa,所以要加一组循环(不能只是测试从第一个开始的最长重复子串)...原创 2021-10-28 16:28:17 · 877 阅读 · 0 评论