数据结构
文章平均质量分 56
程序源⠀
大家好,我是程序源,一位对技术充满热情的计算机专业博主。一起加油!
展开
-
E : DS查找—二叉树平衡因子
二叉树用数组存储,将二叉树的结点数据依次自上而下,自左至右存储到数组中,一般二叉树与完全二叉树对比,比完全二叉树缺少的结点在数组中用0来表示。对每组测试数据,按后序遍历的顺序输出树中结点的平衡因子(测试数据没有空树)计算二叉树每个结点的平衡因子,并按后序遍历的顺序输出结点的平衡因子。每组测试数据一行,数组元素个数n,后跟n个字符,二叉树的数组存储。程序中若include多过一个头文件,不看代码,作0分处理。若使用C语言只能include一个头文件。若使用C++只能include一个头文件。原创 2023-12-28 22:48:01 · 12219 阅读 · 0 评论 -
(C++)DS哈希查找—二次探测再散列(附思路和详细注释)
定义哈希函数为。输入表长(大于、等于11),输入关键字集合,用二次探测再散列构建哈希表,并查找给定关键字。原创 2023-12-26 00:12:12 · 12197 阅读 · 0 评论 -
C : DS二叉排序树之删除(详细思路解答)
给出一个数据序列,建立二叉排序树,并实现删除功能对二叉排序树进行中序遍历,可以得到有序的数据序列第一行输入t,表示有t个数据序列第二行输入n,表示首个序列包含n个数据第三行输入n个数据,都是自然数且互不相同,数据之间用空格隔开第四行输入m,表示要删除m个数据从第五行起,输入m行,每行一个要删除的数据,都是自然数以此类推输入下一个示例第一行输出有序的数据序列,对二叉排序树进行中序遍历可以得到从第二行起,输出删除第m个数据后的有序序列,输出m行以此类推输出下一个示例的结果当删除数据不在序列中,那么删除操作等于不原创 2023-12-19 16:22:41 · 9759 阅读 · 1 评论 -
DS图_传递信息
小明在和他的小伙伴们玩传消息游戏,游戏规则如下:1. 有n名玩家,所有玩家编号分别为0~n-1,其中小明编号为0;2. 每个玩家都有固定的若干个可传信息的其他玩家(也可能没有)。传消息的关系是单向的(即,有向边)。3. 每轮信息必须传递给另一个人,且信息可重复经过同一个人。给定总玩家数n,以及按[玩家编号,对应可传递玩家编号]关系组成的二维数组relation。输出信息从小明(编号0)经过k轮传递到编号为n-1的小伙伴处的方案数;若不能到达,则输出0。原创 2023-11-24 16:17:57 · 7494 阅读 · 0 评论 -
F : DS图遍历--广度优先搜索(详细思路图解)
直接处理邻接矩阵,从第0行开始,遍历每一行的全部数据,若为1则存入队列,并且将这一列的所有值变成0。这说明已经遍历过这个节点了,从下一个节点开始遍历行的时候,就表明这一节点已经访问过。然后从队头开始递归,一个res队列存访问顺序,temp队列存遍历数据,不断进行入队和出队处理。如果图不连通,则对尚未访问的编号结点继续进行广度优先搜索,直到所有结点被访问。第i个结点与其他结点如果相连则为1,无连接则为0,数据之间用空格隔开。给出一个图的邻接矩阵,对图进行广度优先搜索,从顶点0开始。以此类推输入下一个示例。原创 2023-11-14 21:43:48 · 6753 阅读 · 0 评论 -
B : 赫夫曼编码长度
每行一个大小写英文字母组成的字符串,长度不大于 1000,通过前缀编码后最短的编码长度。原创 2023-11-14 20:51:18 · 389 阅读 · 1 评论 -
C-DS二叉树_另一棵树的子树
给你两棵二叉树tree1和tree2,检验tree1中是否包含和tree2具有相同结构和结点值的子树。如果存在,输出true;否则,输出false。数组形式的二叉树表示方法与题目:DS二叉树_伪层序遍历构建二叉树 相同,输入-1表示空结点。第二行首先输入n1,接着输入n1个整数,表示二叉树tree1。第三行首先输入n2,接着输入n2个整数,表示二叉树tree2。以此类推,每两行输入一个测试样例,共输入t个测试样例。每一行输出当前测试样例是否符合题意。第一行输入t,表示有t个测试样例。原创 2023-11-06 16:55:20 · 299 阅读 · 0 评论 -
B-DS二叉树_输出所有目标路径
给定二叉树和一个整数目标targetSum,输出所有从根结点到叶子结点的路径总和等于targetSun的路径。有详细注释原创 2023-11-05 14:21:45 · 326 阅读 · 0 评论 -
A : DS堆栈--括号匹配
处理表达式过程中需要对括号匹配进行检验,括号匹配包括三种:“”和“”,“”和“”,“”和“从上例可以看出第1和第2个括号匹配,第3和第10个括号匹配,4和5匹配,6和9匹配,7和8匹配,11和12匹配。建议使用C++自带的stack对象来实现。原创 2023-10-12 18:58:21 · 233 阅读 · 0 评论 -
F (1083) : DS堆栈--行编辑
使用C++的STL堆栈对象,编写程序实现行编辑功能。行编辑功能是:当输入#字符,则执行退格操作;如果无字符可退就不操作,不会报错本程序默认不会显示#字符,所以连续输入多个#表示连续执行多次退格操作每输入一行字符打回车则表示字符串结束注意:必须使用堆栈实现,而且结果必须是正序输出。原创 2023-10-08 22:31:21 · 212 阅读 · 0 评论 -
E (1081) : DS堆栈--逆序输出(STL栈使用)
C++中已经自带堆栈对象stack,无需编写堆栈操作的具体实现代码。本题目主要帮助大家熟悉stack对象的使用,然后实现字符串的逆序输出输入一个字符串,按字符按输入顺序压入堆栈,然后根据堆栈后进先出的特点,做逆序输出stack类使用的参考代码sstackcts.pop();原创 2023-10-08 22:29:18 · 636 阅读 · 0 评论 -
D (1092) : DS循环链表—约瑟夫环(Ver. I - A)
N个人坐成一个圆环(编号为1 - N),从第S个人开始报数,数到K的人出列,后面的人重新从1开始报数。依次输出出列人的编号。例如:N = 3,K = 2,S = 1。2号先出列,然后是1号,最后剩下的是3号。要求使用循环链表实现。原创 2023-10-08 22:28:02 · 506 阅读 · 0 评论 -
C (1094) : DS双向链表—前驱后继
在双向链表中,A有一个指针指向了后继节点B,同时,B又有一个指向前驱节点A的指针。这样不仅能从链表头节点的位置遍历整个链表所有节点,也能从链表尾节点开始遍历所有节点。对于给定的一列数据,按照给定的顺序建立双向链表,按照关键字找到相应节点,输出此节点的前驱节点关键字及后继节点关键字。原创 2023-10-08 22:26:32 · 555 阅读 · 0 评论 -
B (1089) : DS单链表--合并
假定两个单链表是递增有序,定义并实现以下函数,完成两个单链表的合并,继续保持递增有序。原创 2023-10-08 22:24:31 · 238 阅读 · 0 评论 -
A (1087) : DS单链表--类实现
用C++语言和类实现单链表,含头结点属性包括:data数据域、next指针域操作包括:插入、删除、查找注意:单链表不是数组,所以位置从1开始对应首结点,头结点不放数据类定义参考。原创 2023-10-08 22:22:51 · 420 阅读 · 0 评论 -
D : DS 顺序表之循环移位
顺序表的移位是循环移位,例如顺序表:123456。如果左移1位,即原来的头元素移动到末尾,其它元素向左移1位,变成234561。同理,如果右移1位,即原来的尾元素移动到头,其它元素向右移1位,变成612345。以下是移位的多个例子:原数据:123456左移3位:456123,与原数据对比右移4位:345612,与原数据对比请编写程序实现顺序表的循环移位操作第1行输入n。原创 2023-09-25 23:08:29 · 205 阅读 · 0 评论 -
D : DS 顺序表之循环移位
顺序表的移位是循环移位,例如顺序表:123456。如果左移1位,即原来的头元素移动到末尾,其它元素向左移1位,变成234561。同理,如果右移1位,即原来的尾元素移动到头,其它元素向右移1位,变成612345。以下是移位的多个例子:原数据:123456左移3位:456123,与原数据对比右移4位:345612,与原数据对比请编写程序实现顺序表的循环移位操作第1行输入n。原创 2023-09-23 16:05:59 · 160 阅读 · 0 评论 -
DS 顺序表--合并操作(C++数据结构题)
建立顺序表的类,属性包括:数组、实际长度、最大长度(设定为1000已知两个递增序列,把两个序列的数据合并到顺序表中,并使得顺序表的数据递增有序第1行先输入n表示有n个数据,接着输入n个数据,表示第1个序列,要求数据递增互不等第2行先输入m表示有m个数据,接着输入m个数据,表示第2个序列,要求数据递增互不等顺序表内容包括顺序表的实际长度和数据,数据之间用空格隔开第1行输出创建后的顺序表内容3 11 33 55。原创 2023-09-21 22:42:27 · 207 阅读 · 0 评论 -
C++数据结构题:DS 顺序表--连续操作
建立顺序表的类,属性包括:数组、实际长度、最大长度(设定为 1000该类具有以下成员函数:构造函数:实现顺序表的初始化。插入多个数据的函数,实现在第i个位置,连续插入来自数组item的n个数据,即从位置i开始插入多个数据。删除多个数据的函数,实现从第i个位置开始,连续删除n个数据,即从位置i开始删除多个数据。编写main函数测试该顺序表类。第1行先输入n表示有n个数据,即n是实际长度;接着输入n个数据第2行先输入i。原创 2023-09-21 22:35:37 · 335 阅读 · 0 评论