![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构笔记
文章平均质量分 80
哈哈满
Have Dreams, Will Travel!
展开
-
数据结构之动态单链表代码实现
链式存储结构:哪里有空位就放在哪里,只是让每个元素知道他下一个元素的位置在哪里 特点:用一组人的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的。通过存储后继元素的存储地址来实现 存储数据元素信息的域称为数据域,把存储直接后继文职的域称为指针域。指针域中的存储的信息称作指针或链,这两部分信息组成数据元素的存储映像,称为结点(Node)原创 2015-10-08 17:31:07 · 940 阅读 · 0 评论 -
数据结构之二叉树的线索化
线索二叉树 指向前驱和后继的指针称为线索,加上线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树lchild ltag data rtag rchild当ltag 为0 时指向该结点的做孩子,为1 时指向该结点的前驱当rtag为0 时指向该结点的右孩子,为1时指向该结点的后继 线索化:二叉树以某种次序遍历使其变为线索二叉树的过程称为线索化,实质:原创 2015-10-24 14:10:26 · 691 阅读 · 0 评论 -
数据结构之查找——折半查找、插值查找、斐波那契查找
一、折半查找1、折半查找:折半查找又称为二分查找。前提是线性表中的记录必须是关键码有序,线性表必须采用顺序存储。其基本思想就是在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功;若给定值小于中间记录的关键字,则在中间记录的坐半区继续查找;若给定值大于中间记录的关键字,则在中间记录的右半区继续查找。不断重复上述过程,直到查找成功,或所有查找区域无记录,则查找失败为转载 2015-12-19 18:37:03 · 1113 阅读 · 0 评论 -
数据结构之平衡二叉树的平衡因子BF 的计算
在书上看了平衡二叉树的代码后,发现前人的智慧真是无限。但是因为一次性给出的最完美的代码让人有时候看不太懂...后来经过仔细推敲,才慢慢发现了其中的奥秘。一开始并不知道关于平衡二叉树的平衡因子BF是怎么修改的,后来才发现关于平衡二叉树的最重要的一句话:在构建平衡二叉树的过程中,每当插入一个结点时,先检查是否因插入而破坏了树的平衡性,若是,则找出最小不平衡子树,在保持二叉排序树特性的前提下,调整关原创 2015-12-29 14:23:14 · 15680 阅读 · 5 评论 -
数据结构之最小生成树prim算法
普里姆算法邻接矩阵:①adjvex数组存储相关顶点的下标,初始化时全部为0②lowcost数组存储相关顶点的边的权值,初始化时为一个点的一维数组③然后开始构建最小生成树,从下标0开始a.从当前顶点开始,便来其一维数组,找出最小权值对应的下标值,然后就找到对应的最小值边的权值,b.把lowcost【k】设置为0,代表顶点k已加入最小生成树c.替换最小值对应的下标的那个一维原创 2015-11-08 14:09:30 · 1053 阅读 · 0 评论 -
数据结构之拓扑排序
拓扑排序介绍拓扑排序(Topological Order)是指,将一个有向无环图(Directed Acyclic Graph简称DAG)进行排序进而得到一个有序的线性序列。这样说,可能理解起来比较抽象。下面通过简单的例子进行说明! 例如,一个项目包括A、B、C、D四个子部分来完成,并且A依赖于B和D,C依赖于D。现在要制定一个计划,写出A、B、C、D的执行顺序。这时,就可以利转载 2015-11-15 14:28:29 · 1219 阅读 · 0 评论 -
数据结构之最短路径Dijkdtra算法
迪杰斯特拉算法介绍迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。 它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。基本思想 通过Dijkstra计算图G中的最短路径时,需要指定起点s(即从顶点s开始计算)。 此外,引进两个集合S和U。S的作用是记录已求出最短路径的转载 2015-11-09 18:59:31 · 8179 阅读 · 3 评论 -
数据结构之二叉树链表
2.二叉树 二叉树是n个结点的有限集合,该集合或者为空集(称为空二叉树),或者有一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成 特点: ①每个结点最多有两棵子树,所以二叉树中不存在度 大于2的结点 ②左子树和右子树是有顺序的,次序不能任意颠倒 ③即使树中某结点只有一棵子树,也要区分原创 2015-10-22 13:08:02 · 4400 阅读 · 3 评论 -
数据结构之最小生成树 Kruskal算法
本章是克鲁斯卡尔算法的C++实现。目录 1. 最小生成树 2. 克鲁斯卡尔算法介绍 3. 克鲁斯卡尔算法图解 4. 克鲁斯卡尔算法分析 5. 克鲁斯卡尔算法的代码说明 6. 克鲁斯卡尔算法的源码转载请注明出处:http://www.cnblogs.com/skywang12345/更多内容:数据结构与算法系列 目录最小生成树在含有n个顶点的连通图转载 2015-11-08 21:33:58 · 1534 阅读 · 0 评论 -
数据结构之栈的链式存储结构
栈是限定仅在表尾进行插入和删除操作的线性表栈——先进后出 应用:浏览器的后退键,或者撤销操作 允许插入和删除的一端称为栈顶,另一端称为栈底;不含任何数据匀速的栈称为空栈。栈又称为后进先出(last in first out,)线性表,简称LIFO结构 栈的插入操作,叫做进栈,也称压栈、入栈。 栈的删除操作,叫做出栈,也叫做弹栈原创 2015-10-09 21:50:32 · 773 阅读 · 0 评论 -
数据结构之队列
栈顺序栈两栈共享空间:对于两个相同数据类型的栈,可以用数组的两端作为栈低的方法来趟两个栈共享数据,从而最大化的利用数组空间 链栈队列:是只允许在一端进项插入操作,而在另一端进行删除操作的线性表,它是一种先进先出(First In First Out )的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头。如键盘的输入到显示器上的显示就是队列的例子顺原创 2015-10-14 18:59:40 · 389 阅读 · 0 评论 -
数据结构之线性表的顺序存储结构(数组)的插入与删除
线性表的顺序存数结构:指的是用一段地址连续的存储单元一次存储线性表的数据元素 在内存中找块内存,把相同数据类型的数据元素一次存放在这块空间中。可以用以为数组来实现顺序存储结构。数组的长度是存放线性表的存储空间的长度,线性表的长度是数据元素实际的个数。线性表的长度应该限于等于数组的长度 优点:无需为表中元素之间的逻辑关系而增加额外的存储空间;可以快速的存取表中任一位置的元素 缺点:插入和删除操作需要移动大量元素;当线性表长度变化较大时,难以确定存储空间的容量;造成存储空间的碎片原创 2015-10-07 16:24:21 · 3215 阅读 · 0 评论 -
数据结构之栈的应用——四则表达式求值
栈的应用——四则运算表达式求值一点小感悟:1.左括号只有碰到右括号时才出栈2.优先级高的运算符必须先出栈,转换为后缀表达式的时候才可以先运算3.之所以符号栈中需要先进一个运算符并且只有碰到优先级比自己低的运算符才出栈是为了在计算后缀表达式的时候不会存在一个数字栈中只有一个数字而不能进行运算的情景实现代码如下:#include#de原创 2015-10-12 13:15:57 · 1001 阅读 · 0 评论