![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Data Structure
半濠春水
这个作者很懒,什么都没留下…
展开
-
数据结构算法设计题
线性表1.已知长度为n的线性表采用顺序存储结构。写一个算法,删除线性表中所有值为x的元素。方法一:用k记录顺序表L中等于x的元素个数,边扫描L边统计k, 并将不等于x的元素前移k个位置,最后修改L的长度。void del_x_1(SqList &l, ElemType x){ int k = 0, i = 0; while (i < L.length) { if (L.data[i] == x) { k.原创 2022-02-08 23:25:05 · 4744 阅读 · 0 评论 -
数据结构计算题
在如下数组 A中链接存储了一个线性表,表头指针为 A[0].next,试写出该线性表。请画出下图的邻接矩阵和邻接表。已知一个图的顶点集 V和边集 E分别为:V={1,2,3,4,5,6,7};E={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25};用克鲁斯卡尔算法得到最小生成树,试写出在最小生成树中依次得到的各条边。画出向小根堆中加入数据 4,2,5,8,3..原创 2022-01-16 23:15:20 · 1956 阅读 · 1 评论 -
数据结构应用题
1.LinkListmynote(LinkListL){//L是不带头结点的单链表的头指针if(L&&L->next){q=L;L=L->next;p=L;S1: while(p->next)p=p->next;S2: p->next=q;q->next=NULL;}return L;}请回答下列问题:(1)说明语句 S1的功能;(2)说明语句组 S2的功能;(3)设链表表示的线性表为(a1,a2,…,an),写出算法执行后的返回.原创 2022-01-16 23:15:08 · 4018 阅读 · 1 评论 -
数据结构单选题
一、单选题(每题 2分,共 20分)1.栈和队列的共同特点是( )。A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( ).A.仅修改头指针B.头、尾指针都要修改C.仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( )A.队列B.栈C.线性表D.二叉树4.设有一个二维数组 A[m][n],假设 A[0][0]存放位置在 644(10),A[2][2]存放位置在 676(10.原创 2022-01-16 23:16:38 · 3587 阅读 · 2 评论 -
CPU调度
题目描述在操作系统中,每个进程Process都有三个属性:进程开始时间s、进程结束时间f,进程产生的价值v。当CPU在接收到一组进程的调度请求时,将从这组进程中选出一个按开始时间先后次序排序的进程子集,这个进程子集满足以下两个条件:1)其中任意两个进程时间上不重叠;2)在所有满足条件1)的进程子集中,该进程子集产生的总价值最大。试编写程序帮助生产调度员完成调度。输入第一行输入t表示有t个测试实例每个测试实例包含多行输入:第1行:进程数目n第2行开始的n行分别输入每个进程(进程号由0开始.原创 2022-01-12 13:11:39 · 131 阅读 · 0 评论 -
流水号查找
题目描述每天公众都需要根据服务流水号查询办理进度。现采用哈希查找来实现流水号的查找。–算法说明–哈希函数为H(key)=key MOD 11解决冲突方法为二次探测再散列,其中冲突偏移距离D取值为 +1, -1, +4, -4, +9, -9,……i的平方, i的平方负值,依次类推。哈希表长为11,采用数组存储,不必考虑哈希表溢出的情况。–程序要求–不允许使用第三方对象或函数实现本题的要求必须按照题目要求实现哈希查找,不必考虑查找失败的情况输入第一行输入t表示有t个测试实例每个实例对.原创 2022-01-12 13:06:16 · 621 阅读 · 0 评论 -
先修课程指引
题目描述学生在选修课程时,往往会要求先修一些前置课程。例如学习大数据原理,需要先修计算机导论、操作系统、数据结构等课程,学习大数据技术应用,还要掌握一门面向对象程序设计语言、数据库、计算机网络、WEB开发等知识。因此,需要为学生提供先修课程指引。现在用一个有向图表示各门课程之间的先修和后修关系,要求对有向图进行拓扑排序,生成拓扑有序序列。该序列作为学生先修课程的指引。–算法说明–假设用邻接矩阵表示有向图,拓扑排序过程如下1、在有向图中选一个没有前驱的顶点,且输出该顶点a)提示:若第i个顶点没有.原创 2022-01-12 13:03:43 · 1057 阅读 · 0 评论 -
流水号排序
题目描述由于政府的信息系统很多,每天都有大量的服务流水号生成,需要对服务流水号排序以方便管理。现使用顺序表存储服务流水号,采用直接插入排序法。–算法说明–1、当插入第i(i≥1)个数据时,假设前面的0到i-1个数据已经排好序2、用第i个数据与第i-1、i-2,…的数据顺序进行比较(和顺序查找类似),如果小于,则将第x(x<=i-1)个数据向后移动(插入位置后的记录向后顺移)3、找到插入位置即将第i个数据插入–程序要求–必须使用直接插入排序法实现本题的要求不允许使用第三方对象或函数实.原创 2022-01-12 13:01:03 · 422 阅读 · 0 评论 -
流水号管理
题目描述老百姓在政府部门办理事项时(例如港澳通行证、出国旅游,户口办理等),会得到一个服务流水号。每天成千上万的老百姓来办理事情,因此要对服务流水号进行管理。现在使用顺序表来管理这些服务流水号,操作包括:创建一张顺序表,保存已有的服务流水号使用顺序表的插入操作,实现一个新流水号的插入使用顺序表的删除操作,实现一个流水号的删除–算法说明–顺序表:一维数据数组、最大长度、实际长度插入操作:将位置i和后面的数据全部后移一位,在指定位置i插入一个数据,实际长度加1删除操作:先找到.原创 2022-01-12 12:59:12 · 300 阅读 · 0 评论 -
DS排序--冒泡排序
题目描述给定一个包含从0到n-1各一次的数组,若使用冒泡排序将其排为升序,问其中需要进行多少次交换输入测试数据有多组,每组由两行组成:第一行包含正整数n(n <= 5000); 下一行包含从0到n-1的n个整数的序列。输出对于每组测试数据,输出交换次数样例输入10 1 3 6 9 0 8 5 7 4 2样例输出22提示需要考虑有多轮数据输入的情况!也就是第一个cin或者scanf需要用while来进行循环,例如 while(cin>>…)#include &l.原创 2022-01-12 13:12:23 · 516 阅读 · 0 评论 -
DS内排—直插排序
题目描述给定一组数据,使用直插排序完成数据的升序排序。–程序要求–若使用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 32 23 34 677.原创 2022-01-12 13:12:33 · 353 阅读 · 0 评论 -
DS排序--希尔排序
题目描述给出一个数据序列,使用希尔排序算法进行降序排序。间隔gap使用序列长度循环除2直到1输入第一行输入t,表示有t个测试示例第二行输入n,表示第一个示例有n个数据(n>1)第三行输入n个数据,都是正整数,数据之间用空格隔开以此类推输出对每组测试数据,输出每趟排序结果。不同组测试数据间用空行分隔。样例输入26111 22 6 444 333 55877 555 33 1 444 77 666 2222样例输出444 333 55 111 22 6444 333 .原创 2022-01-12 13:12:41 · 283 阅读 · 0 评论 -
DS排序--折半插入排序
题目描述给出一个数据序列,使用折半插入排序算法进行降序排序。输入第一行输入t,表示有t个测试示例第二行输入n,表示第一个示例有n个数据(n>1)第三行输入n个数据,都是正整数,数据之间用空格隔开以此类推 输出 对每组测试数据,输出每趟排序结果。不同组测试数据间用空行分隔。样例输入25111 22 6 444 333830 13 70 85 39 42 6 20样例输出111 22 6 444 333111 22 6 444 333444 111 22 6 33344.原创 2022-01-12 13:12:50 · 821 阅读 · 0 评论 -
DS排序--直接插入排序
题目描述给出一个数据序列,使用直接插入排序算法进行降序排序。输入第一行输入t,表示有t个测试示例第二行输入n,表示第一个示例有n个数据(n>1)第三行输入n个数据,都是正整数,数据之间用空格隔开以此类推输出对每组测试数据,输出每趟排序结果。不同组测试数据间用空行分隔。样例输入25111 22 6 444 333621 25 49 25 16 8样例输出111 22 6 444 333111 22 6 444 333444 111 22 6 333444 333 .原创 2022-01-13 01:44:07 · 781 阅读 · 0 评论 -
DS查找—二叉树平衡因子
题目描述二叉树用数组存储,将二叉树的结点数据依次自上而下,自左至右存储到数组中,一般二叉树与完全二叉树对比,比完全二叉树缺少的结点在数组中用0来表示。计算二叉树每个结点的平衡因子,并按后序遍历的顺序输出结点的平衡因子。–程序要求–若使用C++只能include一个头文件iostream;若使用C语言只能include一个头文件stdio 程序中若include多过一个头文件,不看代码,作0分处理 不允许使用第三方对象或函数实现本题的要求输入测试次数t 每组测试数据一行,数组元素个数n,后跟.原创 2022-01-12 13:13:07 · 568 阅读 · 0 评论 -
DS二叉排序树之删除
题目描述给出一个数据序列,建立二叉排序树,并实现删除功能对二叉排序树进行中序遍历,可以得到有序的数据序列输入第一行输入t,表示有t个数据序列第二行输入n,表示首个序列包含n个数据第三行输入n个数据,都是自然数且互不相同,数据之间用空格隔开第四行输入m,表示要删除m个数据 从第五行起,输入m行,每行一个要删除的数据,都是自然数 以此类推输入下一个示例输出第一行输出有序的数据序列,对二叉排序树进行中序遍历可以得到从第二行起,输出删除第m个数据后的有序序列,输出m行以此类推输出下一个示例的.原创 2022-01-13 01:44:14 · 531 阅读 · 0 评论 -
道路建设 (Ver. I)
题目描述b有N个村庄,编号从1到N,你应该建造一些道路,使每个村庄都可以相互连接。两个村A和B是相连的,当且仅当A和B之间有一条道路,或者存在一个村C使得在A和C之间有一条道路,并且C和B相连。现在一些村庄之间已经有一些道路,你的任务就是修建一些道路,使所有村庄都连通起来,并且所有道路的长度总和是最小的。 输入 测试数据有多组第一行是整数N(3 <= N <= 100),代表村庄的数量。然后是N行,其中第i行包含N个整数,这些N个整数中的第j个是村庄i和村庄j之间的距离(距离是[1,.原创 2022-01-13 01:46:07 · 281 阅读 · 0 评论 -
拓扑排序-STL版
题目描述已知有向图,顶点从0开始编号,求它的求拓扑有序序列。拓扑排序算法:给出有向图邻接矩阵1.逐列扫描矩阵,找出入度为0且编号最小的顶点v2.输出v,并标识v已访问3.把矩阵第v行全清0重复上述步骤,直到所有顶点输出为止/////////////////////////////////////////////////// STL::vector基本用法1)vector<int>::push_back(1); //将1增加到数组尾部vector<E>::pu.原创 2022-01-16 23:16:56 · 270 阅读 · 0 评论 -
图的最短路径-STL版
题目描述给出一个图的邻接矩阵,输入顶点v,用迪杰斯特拉算法求顶点v到其它顶点的最短路径。/////////////////////////////////////////////////////////////////////////////////////////////////////////基本STL的用法:class Vertex {public: int indexNo; string label; int distance; bool isVi.原创 2022-01-13 01:44:33 · 431 阅读 · 0 评论 -
图综合练习--拓扑排序
题目描述已知有向图,顶点从0开始编号,求它的求拓扑有序序列。拓扑排序算法:给出有向图邻接矩阵1.逐列扫描矩阵,找出入度为0且编号最小的顶点v2.输出v,并标识v已访问3.把矩阵第v行全清0 重复上述步骤,直到所有顶点输出为止–程序要求–若使用C++只能include一个头文件iostream;若使用C语言只能include一个头文件stdio 程序中若include多过一个头文件,不看代码,作0分处理不允许使用第三方对象或函数实现本题的要求输入第一行输入一个整数t,表示有t个有向图.原创 2022-01-13 01:45:51 · 180 阅读 · 0 评论 -
DS图—图的最短路径(不含代码框架)
题目描述给出一个图的邻接矩阵,输入顶点v,用迪杰斯特拉算法求顶点v到其它顶点的最短路径。输入第一行输入t,表示有t个测试实例第二行输入顶点数n和n个顶点信息第三行起,每行输入邻接矩阵的一行,以此类推输入n行第i个结点与其它结点如果相连则为距离,无连接则为0,数据之间用空格隔开。第四行输入v0,表示求v0到其他顶点的最短路径距离以此类推输入下一个示例输出 对每组测试数据,输出:每行输出v0到某个顶点的最短距离和最短路径每行格式:v0编号-其他顶点编号-最短路径值----[最短路径]。没.原创 2022-01-13 01:44:40 · 290 阅读 · 0 评论 -
广度优先搜索-STL对象版
题目描述广度优先搜索-STL对象版 给出一个图的邻接矩阵,对图进行深度优先搜索,从顶点0开始注意:图n个顶点编号从0到n-1/////////////////////////////////////////////////////////////////////////////////////////////////////////基本STL的用法:1)vector<int>::push_back(1); //将1增加到数组尾部vector<E>::push_bac.原创 2022-01-13 01:45:32 · 566 阅读 · 0 评论 -
货币套汇(图路径)
题目描述套汇是指利用货币汇兑率的差异将一个单位的某种货币转换为大于一个单位的同种货币。 例如,假定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输入第一行:测试数据组数 每组测试数据格式.原创 2022-01-13 01:44:59 · 1234 阅读 · 0 评论 -
DS图—图的连通分量
题目描述输入无向图顶点信息和边信息,创建图的邻接矩阵存储结构,计算图的连通分量个数。输入测试次数t每组测试数据格式如下:第一行:顶点数 顶点信息第二行:边数 第三行开始,每行一条边信息输出 每组测试数据输出,顶点信息和邻接矩阵信息输出图的连通分量个数,具体输出格式见样例。每组输出直接用空行分隔。样例输入34 A B C D2A BA C6 V1 V2 V3 V4 V5 V65V1 V2V1 V3V2 V4V5 V6V3 V58 1 2 3 4 5 6 7 8.原创 2022-01-13 01:45:13 · 205 阅读 · 0 评论 -
DS图—最小生成树
题目描述根据输入创建无向网。分别用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 5v3 v5 6v.原创 2022-01-13 01:44:50 · 149 阅读 · 0 评论 -
图的应用之——图的连通
题目描述给定一个图的邻接矩阵,请判断该图是否是连通图。 连通图:任意两个顶点之间都有路径。–程序要求–若使用C++只能include一个头文件iostream;若使用C语言只能include一个头文件stdio程序中若include多过一个头文件,不看代码,作0分处理 不允许使用第三方对象或函数实现本题的要求输入第1行输入一个整数k,表示有k个测试数据第2行输入一个整数n,表示有n个结点从第3行起到第n+2行输入一个邻接矩阵,其中Matrix[i,j]=1表示第i,j个结点之间有边,否则.原创 2022-01-11 21:24:55 · 277 阅读 · 0 评论 -
DS图—图非0面积
题目描述编程计算由"1"围成的下列图形的面积。 面积计算方法是统计"1"所围成的闭合曲线中"0"点的数目。如图所示,在10*10的二维数组中,"1"围住了15个点,因此面积为15。输入测试次数t每组测试数据格式为:数组大小m,n 一个由0和1组成的m*n的二维数组输出对每个二维数组,输出符号"1"围住的"0"的个数,即围成的面积。假设一定有1组成的闭合曲线,但不唯一。样例输入210 100 0 0 0 0 0 0 0 0 00 0 0 0 1 1 1 0 0 00 0 0 0 .原创 2022-01-11 21:20:17 · 460 阅读 · 0 评论 -
DS图遍历--广度优先搜索
题目描述给出一个图的邻接矩阵,对图进行深度优先搜索,从顶点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 050 0 0 1 .原创 2022-01-11 21:16:25 · 345 阅读 · 0 评论 -
DS图遍历--深度优先搜索
题目描述给出一个图的邻接矩阵,对图进行深度优先搜索,从顶点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 050 0 0 1.原创 2022-01-11 21:08:19 · 393 阅读 · 0 评论 -
DS图—图的邻接矩阵存储及度计算
题目描述假设图用邻接矩阵存储。输入图的顶点信息和边信息,完成邻接矩阵的设置,并计算各顶点的入度、出度和度,并输出图中的孤立点(度为0的顶点)–程序要求–若使用C++只能include一个头文件iostream;若使用C语言只能include一个头文件stdio 程序中若include多过一个头文件,不看代码,作0分处理 不允许使用第三方对象或函数实现本题的要求输入测试次数T,每组测试数据格式如下:图类型 顶点数 (D—有向图,U—无向图)顶点信息边数每行一条边(顶点1顶点2)或弧(弧.原创 2022-01-11 21:01:53 · 581 阅读 · 0 评论 -
图综合练习--构建邻接表
题目描述已知一有向图,构建该图对应的邻接表。邻接表包含数组和单链表两种数据结构,其中每个数组元素也是单链表的头结点,数组元素包含两个属性,属性一是顶点编号info,属性二是指针域next指向与它相连的顶点信息。单链表的每个结点也包含两个属性,属性一是顶点在数组的位置下标,属性二是指针域next指向下一个结点。输入第1行输入整数t,表示有t个图第2行输入n和k,表示该图有n个顶点和k条弧。第3行输入n个顶点。第4行起输入k条弧的起点和终点,连续输入k行以此类推输入下一个图输出输出每个图.原创 2022-01-11 20:51:58 · 548 阅读 · 0 评论 -
DS森林叶子编码
题目描述给定一组森林,编写程序生成对应的二叉树,输出这颗二叉树叶结点对应的二进制编码. 规定二叉树的左边由0表示,二叉树的右边由1表示。输入第1行输入:N B,表示N个树,每结点最多B个分支;第2行至第N+1行,输入每个树的先序遍历,空树用字符‘0’表示。输出每行表示一个叶结点对应的二进制编码.样例输入3 3AB000C000D000EF00000GH000IJ000000样例输出0 1 11 01 1 0 1 0#include <iostream>#in.原创 2022-01-11 20:43:35 · 628 阅读 · 0 评论 -
DS二叉树--同一棵二叉树
题目描述二叉树分别以数组存储方式创建、以先序遍历序列创建。 输入二叉树的数组存储、先序遍历结果,判断根据它们创建的二叉树是否是同一棵二叉树。输入测试次数t每组测试数据两行:第一行:二叉树的数组存储(英文字母表示树结点,#表示空树)第二行:二叉树的先序遍历结果(英文字母表示树结点,#表示空树)输出对每组测试数据,如果两种方式创建的是同一棵二叉树,输出YES,否则,输出NO。样例输入3ABCDEABD##E##CABC##DE####W##FAB##CDW###E#F##abc.原创 2022-01-11 16:32:53 · 456 阅读 · 0 评论 -
二叉树的中后序遍历及操作
题目描述按中序遍历和后序遍历给出一棵二叉树,现在有如下操作:UPDATE A B,将中序遍历中A位置(从1开始编号的下标)对应的在二叉树中的节点的权值改为BQUERY,询问树上所有节点的权值,以及从根节点到该节点的路径权值之和STOP,停止操作,STOP操作一定出现在最后 中序遍历和后序遍历的输入保证叶子节点的权值各不相同。但是,之后如果存在UPDATE操作,则UPDATE操作可能会使得两个或两个以上的叶子节点的权值相同。输入测试数据有多组对于每组测试数据:第一行输入这棵二叉树的结点数.原创 2022-01-11 16:25:09 · 282 阅读 · 0 评论 -
DS二叉树--二叉树之最大路径
题目描述给定一颗二叉树的逻辑结构(先序遍历的结果,空树用字符‘0’表示,例如AB0C00D00),建立该二叉树的二叉链式存储结构。二叉树的每个结点都有一个权值,从根结点到每个叶子结点将形成一条路径。每条路径的权值等于路径上所有结点的权值和。编程求出二叉树的最大路径权值。 如下图所示,共有4个叶子即有4条路径,路径1权值=5 + 4 + 11 + 7 = 27路径2权值=5 + 4 + 11 + 2 = 22路径3权值=5 + 8 + 13 = 26路径4权值=5 + 8 + 4 + 1 = 1.原创 2022-01-11 16:16:47 · 1149 阅读 · 0 评论 -
DS排序--简单选择排序
题目描述给出一个数据序列,使用简单选择排序算法进行升序排序输入 第一行输入t,表示有t个测试示例 第二行输入n,表示第一个示例有n个数据(n>1) 第三行输入n个数据,都是正整数,数据之间用空格隔开以此类推 输出 对每组测试数据,输出每趟排序结果。不同组测试数据间用空行分隔。样例输入2621 25 49 25 16 8830 13 70 85 39 42 6 20样例输出8 25 49 25 16 218 16 49 25 25 218 16 21 25 25 498 1.原创 2022-01-07 23:29:38 · 2098 阅读 · 0 评论 -
DS查找—折半查找求阶乘函数后K个零
题目描述f(x) 是 x! 末尾是 0 的数量,给定 K,找出多少个非负整数 x ,能满足 f(x) = K 。(x! = 1 * 2 * 3 * … * x,且 0! = 1 ) 例如, f(3) = 0 ,因为 3! = 6 的末尾没有 0 ;而 f(11) = 2 ,因为 11!= 39916800 末端有 2 个 0 。提示:函数 f的表达式:从表达式中可以看出,f(x) 有多个取整函数相加组成,取整函数是阶梯状变化的, 所以 f(x) 也一定是阶梯状的。接下来观察阶梯的上升位置,和式的.原创 2022-01-07 22:19:46 · 635 阅读 · 0 评论 -
DS二叉排序树之查找
题目描述给出一个数据序列,建立二叉排序树,并实现查找功能对二叉排序树进行中序遍历,可以得到有序的数据序列输入第一行输入t,表示有t个数据序列第二行输入n,表示首个序列包含n个数据第三行输入n个数据,都是自然数且互不相同,数据之间用空格隔开第四行输入m,表示要查找m个数据从第五行起,输入m行,每行一个要查找的数据,都是自然数以此类推输入下一个示例输出第一行输出有序的数据序列,对二叉排序树进行中序遍历可以得到从第二行起,输出查找结果,如果查找成功输出查找次数,如果查找失败输出-1以此.原创 2021-10-02 17:43:48 · 740 阅读 · 0 评论 -
DS二叉排序树之创建和插入
题目描述给出一个数据序列,建立二叉排序树,并实现插入功能对二叉排序树进行中序遍历,可以得到有序的数据序列输入第一行输入t,表示有t个数据序列第二行输入n,表示首个序列包含n个数据第三行输入n个数据,都是自然数且互不相同,数据之间用空格隔开第四行输入m,表示要插入m个数据从第五行起,输入m行,每行一个要插入的数据,都是自然数且和前面的数据不等以此类推输入下一个示例输出第一行输出有序的数据序列,对二叉排序树进行中序遍历可以得到从第二行起,输出插入第m个数据后的有序序列,输出m行以此类.原创 2021-10-02 17:43:57 · 349 阅读 · 0 评论 -
DS查找——折半查找求平方根
题目描述假定输入y是整数,我们用折半查找来找这个平方根。在从0到y之间必定有一个取值是y的平方根,如果我们查找的数x比y的平方根小,则x2<y,如果我们查找的数x比y的平方根大,则x2>y,我们可以据此缩小查找范围,当我们查找的数足够准确时(比如满足|x2-y|<0.00001),就可以认为找到了y的平方根。比如求5的平方根x,则x一定满足0<=x<=5,取x为(5+0)/2=2.5,因为2.5的平方为6.25>5,所以x一定小于2.5,也即x满足0<=x&.原创 2021-10-02 17:44:06 · 552 阅读 · 0 评论