
数据结构
文章平均质量分 83
数据结构
沐雨风栉
生活是一面镜子。你对它笑,它就对你笑;你对它哭,它也对你哭。
展开
-
深入理解链表:一种动态的线性数据结构
链表是我们在日常编程中经常使用的一种数据结构,它相比于数组具有更好的动态性能。但是,对链表的深入理解需要我们掌握其内在的逻辑结构和操作原理。本文将带领读者一起深入理解链表的概念、种类、特性及其在Java中的具体实现方式。我们将从最简单的单向链表开始,探讨如何通过Java代码实现它的主要操作,如添加、遍历、插入和删除节点等。然后,我们会讨论更复杂的链表类型,如带有哨兵节点的链表,双向链表和环形链表,分析它们的优缺点以及适用的场景。链表是一种基本的数据结构,用于维护数据元素的线性集合。原创 2023-07-03 23:17:17 · 758 阅读 · 5 评论 -
数据结构练习题——树和二叉树(算法设计题)
题目分析]因为后序遍历栈中保留当前结点的祖先的信息,用一变量保存栈的最高栈顶指针,每当退栈时,栈顶指针高于保存最高栈顶指针的值时,则将该栈倒入辅助栈中,辅助栈始终保存最长路径长度上的结点,直至后序遍历完毕,则辅助栈中内容即为所求。[题目分析]如果二叉树为空,返回0,如果二叉树不为空且左右子树为空,返回1,如果二叉树不为空,且左右子树不同时为空,返回左子树中叶子节点个数加上右子树中叶子节点个数。[题目分析]如果某结点左右子树为空,返回,否则交换该结点左右孩子,然后递归交换左右子树。原创 2022-09-04 17:31:10 · 1452 阅读 · 1 评论 -
数据结构练习题——图(算法设计题)
(4)试基于图的深度优先搜索策略写一算法,判别以邻接表方式存储的有向图中是否存在由顶点vi到顶点vj的路径(i≠j)。(5)采用邻接表存储结构,编写一个算法,判别无向图中任意给定的两个顶点之间是否存在一条长度为为k的简单路径。(2)一个连通图采用邻接表作为存储结构,设计一个算法,实现从顶点v出发的深度优先遍历的非递归过程。(3)设计一个算法,求图G中距离顶点v的最短路径长度最大的一个顶点,设v可达其余各个顶点。④ 删除一条边,DeleteArc(G, v, w)。② 删除顶点v及其相关的边,原创 2022-09-04 17:26:13 · 2637 阅读 · 0 评论 -
数据结构练习题——图(含应用题)
1.选择题(1)在一个图中,所有顶点的度数之和等于图的边数的()倍。A....4答案C(2)在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的()倍。A....4答案B解释有向图所有顶点入度之和等于所有顶点出度之和。(3)具有n个顶点的有向图最多有()条边。A....n2答案B解释有向图的边有方向之分,即为从n个顶点中选取2个顶点有序排列,结果为n(n-1)。(4)n。...原创 2022-07-30 17:46:40 · 5944 阅读 · 0 评论 -
数据结构练习题——树和二叉树(含应用题)
解释:设度为0结点(叶子结点)个数为A,度为1的结点个数为B,度为2的结点个数为C,有A=C+1,A+B+C=1001,可得2C+B=1000,由完全二叉树的性质可得B=0或1,又因为C为整数,所以B=0,C=500,A=501,即有501个叶子结点。对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,可采用( )遍历实现编号。(15)n(n≥2)个权值均不相同的字符构成哈夫曼树,关于该树的叙述中,错误的是( )。原创 2022-07-30 17:22:17 · 2537 阅读 · 0 评论 -
数据结构练习题-算法设计题-线性表
算法设计题(1)将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中不允许有重复的数据。[题目分析]合并后的新表使用头指针Lc指向,pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的第一个结点,从第一个结点开始进行比较,当两个链表La和Lb均为到达表尾结点时,依次摘取其中较小者重新链接在Lc表的最后。如果两个表中的元素相等,只摘取La表中的元素,删除Lb表中的元素,这样确保合并后表中无重复的元素。当一个表到达表尾结点,原创 2022-06-08 21:52:42 · 1246 阅读 · 0 评论 -
数据结构练习题-3栈和队列
数据结构练习题-栈和队列原创 2022-05-08 14:25:16 · 1197 阅读 · 0 评论 -
数据结构练习题-2线性表
数据结构练习题-线性表(1)顺序表中第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( )。A.110 B.108 C.100 D.120答案:B解释:顺序表中的数据连续存储,所以第5个元素的地址为:100+2*4=108。(2)在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是( )。A.访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)B.在第i个结点后插入一个新结点(...原创 2022-05-07 22:00:18 · 799 阅读 · 0 评论 -
数据结构练习题-1
数据结构练习题-11.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。答案:数据:是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。如数学计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形、图像、声音、动画等通过特殊编码定义后的数据。数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。在有些情况下,数据元素也称为元素、结点、记录等。数据元素用于完整地描述一个对象,如一个学生记录,树中棋盘的原创 2022-05-07 21:46:34 · 404 阅读 · 0 评论 -
数据结构课程设计——客运订票系统
目录2需求分析2.1系统功能3总体设计3.1功能模块图4详细设计4.1 详细的设计思路车次设置:订票模块的功能:退票模块的功能:管理员模块的功能:4.2 算法流程图5编码5.1数据结构定义1.乘客信息2. 候补队列乘客信息3.候补票队列4.乘客信息5.车次信息:5.2功能函数设计(1)功能函数 MenuSelect(2)功能函数 BookticketFace;(3)功能函数 BookTickets(4)功能函数 ReturnTicketsFace(5)功能函数 ReturnTicket(6)功能函原创 2021-11-05 22:31:14 · 7779 阅读 · 10 评论 -
Tree Recovery(已知先序和中序求后序遍历二叉树)
题目Little Valentine liked playing with binary trees very much. Her favorite game was constructing randomly looking binary trees with capital letters in the nodes.This is an example of one of her creations: D原创 2021-01-15 17:30:14 · 239 阅读 · 0 评论 -
最短路 HDU - 2544 (Dijkstra)
在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?Input输入包括多组数据。每组数据第一行是两个整数N、M(N<=100,M<=10000),N表示成都的大街上有几个路口,标号为1的路口是商店所在地,标号为N的路口是赛场所在地,M则表示在成都有几条路。N=M=0表示输入结束。接下来M行,每行包括3个整数A,B,C(1<=A,B&原创 2020-10-14 16:32:10 · 246 阅读 · 0 评论 -
畅通工程续 HDU - 1874 (Dijkstra)
某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。Input本题目包含多组数据,请处理到文件结束。每组数据第一行包含两个正整数N和M(0<N<200,0<M<1000),分别代表现有城镇的数目和已修建的道路的数目。城镇分别以0~N-1编号。接下来是M行道路信息。每原创 2020-10-14 16:28:37 · 221 阅读 · 0 评论