![](https://img-blog.csdnimg.cn/20210602163139522.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
文章平均质量分 59
基础知识
Ramos_4
不要看到希望才去努力,只有玩命努力看到希望
展开
-
关于线性表的几个考点专题
二路归并1.顺序表的归并 首先,按顺序取下两个顺序表表头较小的结点存入新的顺序表中。然后,看哪个表还有剩余,将剩下的部分加到新的顺序表后面。 bool Merge(SqList A,SqList B,SqList &c){ if(A.length+B.Length>C.maxSize) return false; int i=0,j=0,k=0; //i、j、k分别作为A、B、C的下标 while (i<A->length && j<B->原创 2020-05-12 22:31:36 · 533 阅读 · 0 评论 -
树与二叉树的相关基本术语及性质
树的基本术语:树的基本性质:完全二叉树与满二叉树二叉树的性质:原创 2020-10-29 13:58:48 · 214 阅读 · 1 评论 -
手工遍历二叉树的技巧
原创 2020-05-12 22:54:30 · 187 阅读 · 0 评论 -
二叉树与树、森林之间的相互转化
一、树转二叉树思想:孩子兄弟存储法 左孩子:结点的左指针指向它的第一个孩子 右兄弟:结点的右指针指向它的后一个兄弟  原创 2020-07-30 21:24:19 · 486 阅读 · 0 评论 -
哈夫曼树与哈夫曼编码的考点
一、哈夫曼树1.定义带权路径长度WPL最小的二叉树成为哈夫曼树(最优二叉树)note:哈夫曼树并不唯一,但WPL一定是相同的2.构造哈夫曼树基本原则:权值越大的叶子结点越靠近根结点 权值越小的叶子结点越远离根结点构造过程:特点:栗子:设有7个叶子结点,它们的权集w原创 2020-07-06 21:22:30 · 4931 阅读 · 0 评论 -
图的相关概念及术语
一、图的定义二、相关术语1.有向图2.无向图3.简单图(现阶段主要研究它)和多重图4.完全图5.子图6.连通、连通图和连通分量(针对无向图而言)7.强连通图、强连通分量(针对有向图而言)8.生成树、生成森林9.顶点的度、入度和出度10.路径、路径长度和回路...原创 2020-08-12 10:33:37 · 300 阅读 · 0 评论 -
关于图的邻接矩阵和邻接表存储
会根据根据图画出邻接表、邻接矩阵存储,反之要会还原出图关注以下例子:原创 2020-10-29 14:22:56 · 322 阅读 · 0 评论 -
深度优先与广度优先的思想
DFS与BFS的区别:图G的领接表存储已给出,要求从顶点1出发,分别得到对图G的进行深度优先遍历和广度优先遍历所得到的顶点序列根据题目所给的领接表顺序来确定访问的路径的顺序:1.深度遍历得到的序列2.广度遍历得到的序列...原创 2020-05-20 12:44:56 · 1173 阅读 · 0 评论 -
关于最小生成树的考点
算法核心思想:手工实现过程实例:原创 2020-10-26 19:40:35 · 3815 阅读 · 3 评论 -
求解单源最短路径的手工实现
例如这样一个带权有向图:手工实现的步骤:原创 2020-05-16 15:24:50 · 307 阅读 · 0 评论 -
手工求解拓扑排序的方法
对AOE网进行拓扑排序的常用算法:(AOV网:若用DAG图表示一个工程,其顶点表示活动,将这种有向图称为顶点表示活动的网络,记为AOV网)每一轮选择一个入度为0的顶点并输出,然后删除该结点和所有以它为起点的有向边栗子:...原创 2020-09-08 16:15:47 · 346 阅读 · 0 评论 -
手工求解关键路径等一系列问题的方法
求解步骤:版本1:版本2:栗子:(步骤稍可省略)原创 2020-11-06 10:46:41 · 315 阅读 · 0 评论 -
静态查找表(线性表的查找)
有关折半查找判定树的考法栗子:对于给定11个数据元素的有序表: (2,3,10,15,20,25,28,29,30,35,40)采用二分查找,试问:(1)若查找给定值为20的元素,将依次与表中哪些元素比较?(2)若查找给定值为26的元素,将依次与哪些元素比较?(3)假设查找表中每个元素的概率相同,求查找成功时的平均查找长度和查找不成功时的平均查找长度。(1)(2)★这里可以记一个小结论秒杀:(3)(4)Note:关于结点个数选取的问题...原创 2020-07-18 15:04:26 · 1352 阅读 · 0 评论 -
动态查找表(树表的查找)
一、二叉排序树(BST)●关于BST平均查找长度的计算:掌握BST的删除操作的手工实现:(1)删除结点是叶子结点:直接删除(2)删除结点只有一棵左子树或右子树:将其孩子放到自己现在的位置 栗子:(3)删除的结点p有左子树,也有右子树 方法一:p与中序直接前驱交换,再删除p(通常用此方法) 方法二:p与中序直接后继交换,再删除p在中序(LPR)线索二叉树的遍历那里,介绍过这样一个规律,回忆一下: p结点的中序直接前驱就是其左子树中最右下的结点(也就是值最大的那个原创 2020-07-18 07:19:01 · 1550 阅读 · 0 评论 -
红黑树(RBT)
一、红黑树的相关概念RBT就是二叉排序树的一种优化(满足基本的左子树结点值≤根结点值≤右子树结点值)RBT满足的要求:左根右,根叶黑,不红红,黑路同具体含义: 代码定义:【概念】结点的黑高BH:从某结点出发(不含该结点)到达任一空结点的路径上黑结点总数如:性质:二、红黑树的查找与BST、AVL相同,从根出发,左小右大,若查找到一个空叶结点,则查找失败三、红黑树的插入...原创 2021-11-05 12:30:08 · 1020 阅读 · 0 评论 -
散列表的查找
需要掌握的题型1.原创 2020-08-28 07:19:20 · 151 阅读 · 0 评论 -
插入类排序
一、直接插入排序默认研究递增有序序列基本思想:每趟将一个待排序的关键字按照其值的大小插入到已经排好的部分有序序列的适当位置上,直到所有待排关键字都被插入到有序序列中为止。譬如下面这个过程,前面都是已经排好序的,6该如何进行插入排序呢?完整示例:详细过程描述:二、折半插入排序基本思路:难点:如何在R[low…high]中查找插入R[i]的位置?注意:同直接插入排序,折半插入排序每趟产生的有序区并不一定是全局有序的。栗子:一趟排序的详细过程...原创 2020-07-25 17:35:28 · 383 阅读 · 0 评论 -
交换类排序
一、冒泡排序1.算法思想2.举例流程: 原始序列关键字(49,38,65,97,76,13,27,49)原创 2020-07-15 20:18:28 · 349 阅读 · 0 评论 -
选择类排序
一、简单选择排序1.算法思想 从头到尾顺序扫描序列,找出一个最小(或者最大)的一个关键字,和第一个关键字交换,接着从剩下的关键字中继续这种选择和交换,最终使序列有序。原创 2020-07-17 15:31:44 · 304 阅读 · 0 评论 -
二路归并排序
1、算法思想(基于分治法)Note:归并排序每趟产生的有序区也只是局部有序的。2、举例流程: 原始序列关键字:(49,38,65,97,76,13,27)推而广之:原创 2020-10-11 16:01:19 · 1907 阅读 · 0 评论 -
基数排序
简介:不基于比较和移动进行排序,而基于关键字各位的大小进行排序。通常采用的是链式基数排序。基数排序每趟并不产生有序区,即在最后一趟排序结束前所有元素并不一定归位了。大体思想:手工模拟实现基数排序的栗子:...原创 2020-10-12 21:44:44 · 175 阅读 · 0 评论