![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 80
Time-space
这个作者很懒,什么都没留下…
展开
-
【笔记】抽象数据型及算法复杂性
数据结构的研究对象抽象数据型算法及其复杂性时间复杂性分析的基本方法原创 2017-10-05 11:27:07 · 498 阅读 · 0 评论 -
【笔记】遍历二叉树的应用
二叉树的计数求叶子节点的最大最小枝长判断两颗二叉树是否相似交换二叉树的左右子树求根节点到r结点之间的路径1.二叉树的计数 二叉树的计数也可以通过遍历二叉树来实现,关于二叉树计数的算法有求二叉树叶子节点的个数、非叶子节点的个数。计算二叉树叶子结点个数 求二叉树的叶子节点的个数递归定义如下。leaf(T)=⎧⎩⎨⎪⎪0,1,leaf(T−>lchild原创 2017-10-29 09:25:54 · 927 阅读 · 0 评论 -
【笔记】每一对顶点间的最短路径
每一对顶点间的最短路径弗洛伊德算法弗洛伊德算法的实现1.每一对顶点间的最短路径 如果要计算每一对顶点之间的最短路径,需每次以一个顶点为出发点,将迪杰斯特拉算法重复执行n次,就可以得到每一对顶点的最短路径,总的时间复杂度为O(n3)O(n^3)。如果采用弗洛伊德算法,虽然时间复杂度也是O(n3)O(n^3),但是形式更简单。2.弗洛伊德算法 基本算法思想原创 2018-01-13 23:14:59 · 2140 阅读 · 0 评论 -
【笔记】二叉排序树
二叉排序树的定义二叉排序树的查找二叉排序树的删除二叉排序树应用举例 二叉排序树也称为二叉查找树。二叉排序树的查找是一种常用的动态查找方法。1.二叉排序树的定义 二叉排序树或者是一棵空二叉树,或者二叉树具有下列性质: 如果二叉树的左子树不为空,则左子树上的每一个结点的值均小于其对应根结点的值。 如果二叉树的右子树不为空,则右子树上的每一个结点的值均原创 2017-11-19 01:31:31 · 648 阅读 · 0 评论 -
【笔记】静态查找算法
顺序表的查找有序顺序表的查找顺序查找折半查找索引顺序表的查找静态查找应用实例 关键字与主关键字:数据元素中某个数据项的值。如果该关键字可以将所有的数据元素区别开来,也即可以唯一标识一个数据元素,则该关键字称为主关键字,否则称为次关键字。特别地,如果数据元素只有一个数据项,则数据元素的值即是关键字。 查找表:是由同种类型的数据元素构成的集合。查找表中的数据元素是完全原创 2017-11-17 21:19:00 · 502 阅读 · 0 评论 -
【笔记】基数排序
基数排序是一种借助多关键字排序的思想对单逻辑关键字进行排序的方法。 一般情况下,假设有n个记录的序列R1,R2,…,Rn{R_1,R_2,…,R_n}且每个记录RiR_i中含有d个关键字(K0i,K1i,…,Kd−1i)(K^0_i,K^1_i,…,K^{d-1}_i),则称序列对关键字有序是指:对于序列中的任意两个记录RiR_i和Rj(1≤ij≤n)R_j(1\leq i都满足下列有序关系原创 2017-11-17 01:10:04 · 407 阅读 · 0 评论 -
【笔记】归并排序
归并排序:是又一类不同的排序方法。“归并”的含义是将两个或两个以上的有序表组合成一个新的有序表。无论是顺序存储结构还是链表存储结构,都可在O(m+n)O(m+n)的时间量级上实现。 基本算法思想:假设初始序列含有n个记录,则可看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到[n2][\frac{n}{2}]个长度为2或1的有序子序列,再两两归并……如此重复,直至得到一个原创 2017-11-12 00:16:09 · 273 阅读 · 0 评论 -
【笔记】图的遍历
图的深度优先搜索的概念图的深度优先搜索的实现图的广度优先搜索的概念图的广度优先搜索的实现图的遍历算法源码原创 2017-12-01 00:03:38 · 1019 阅读 · 0 评论 -
【笔记】图的连通性
无向图的连通分量最小生成树的概念普里姆算法克鲁斯卡尔算法应用示例1.无向图的连通分量 在对无向图进行遍历时,对于连通图,仅需从图的任何一个顶点出发进行深度优先搜索遍历或广度优先搜索遍历就可访问到图中的所有顶点;对于非连通图,则需从多个顶点出发进行搜索,而且每一次从一个新的起始点出发进行搜索过程中得到的顶点访问序列恰为其各个连通分量中的顶点集。 如下图所示,图G3原创 2017-12-01 01:31:46 · 2914 阅读 · 0 评论 -
【笔记】顺序队列
一队列的定义二队列的顺序存储表示顺序队列顺序循环队列三队列的顺序存储实现顺序队列的实现顺序循环队列的实现顺序循环队列的应用一、队列的定义 和栈相反,队列说一种先进先出(缩写为FIFO)的线性表。它只允许在表的一端进行插入,在另一端除元素。在队列中,允许插入的一端叫队尾,允许删除的一端则成为队头。 还有一种限定性的数据结构说双端队列。双端队列是限定插原创 2017-10-10 13:31:21 · 1603 阅读 · 0 评论 -
【笔记】线性表及其应用
一线性表的概念线性表的类型定义线性表的顺序表示线性表的链式表示顺序存储结构与链式存储结构对比二线性表的实现线性表的顺序表示实现线性表的链式表示实现三线性表的应用制作简易通讯录学生成绩管理系统原创 2017-10-06 23:29:16 · 2513 阅读 · 0 评论 -
【练习】图的出度计算
题目:有一个邻接表存储的图G,分别设计实现如下要求的算法: (1)求出图G中每个顶点的出度; (2)求出图G中出度最大的一个顶点,输出该顶点的编号; (3)计算图G中出度为零的顶点数; (4)判断图G中是否存在边i,j>。 分析:从图的表头结点出发,一次访问边表结点,并进行计数,就可得到相应每个顶点的出度。问题4可令p=G.vertex.firstarc,然后一次遍历p指向链表中的每原创 2018-01-16 01:30:09 · 3851 阅读 · 0 评论 -
【笔记】链式队列
一链式队列的表示链式队列链式循环队列二链式队列的实现一、链式队列的表示1.链式队列 用链表表示的队列,简称为链队列。链式队列在插入和删除过程中不需要移动大量的元素,只需要改变指针的位置即可。 一个链式队列显然需要两个分别指示队头和队尾的指针(分别称为头指针和尾指针)才能唯一确定。空的链队列的判决条件为头指针和尾指针均指向头结点。 2.链式循环队列原创 2018-01-30 20:55:13 · 629 阅读 · 0 评论 -
【笔记】栈及其应用
一栈的定义二栈的表示和实现顺序栈的实现栈的链式表示与实现三栈的应用算术表达式求值一、栈的定义 栈是限定仅在表尾进行插入或删除操作的线性表。对栈来说,表尾端具有其特殊含义,称为栈顶,相应地,表头端称为栈底。不含元素的空表称为空栈。栈又称为后进先出的线性表(简称LIFO结构)。二、栈的表示和实现 栈的基本操作只有两个: 入栈(Push):即将数据保存到栈顶。进行该操作前,先修改栈原创 2017-10-09 00:29:50 · 447 阅读 · 0 评论 -
【笔记】图的基础知识
图是一种比线性表、树更为复杂的数据结构。图是一种非线性的数据结构,图中的数据元素之间的关系是多对多的关系。1.图的定义 图是由数据元素集合V与边的集合E构成的。在图中,数据元素通常称为顶点。其中,顶点集合V不能为空,边表示顶点之间的关系。原创 2017-11-29 17:27:54 · 506 阅读 · 1 评论 -
【笔记】图的存储结构
邻接矩阵法邻接表法十字链表法邻接多重链表法原创 2017-11-29 23:29:11 · 487 阅读 · 0 评论 -
【笔记】平衡二叉树
若二叉排序树的深度为n,在最坏的情况下平均查找长度为n,为了减少二叉排序树的查找次数,需要对二叉排序树进行平衡化处理,平衡化处理后得到的二叉树称为平衡二叉树。1.平衡二叉树的定义 平衡二叉树又称为AVL树,它或者是一棵空树,或者左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。原创 2017-11-20 23:33:16 · 962 阅读 · 0 评论 -
【笔记】AOV网与拓扑排序
无环路有向图AOV网拓扑排序AOV网的拓扑排序算法实现原创 2017-12-01 13:07:58 · 6489 阅读 · 1 评论 -
【笔记】AOE网与关键路径
AOE网关键路径求关键路径的算法实现原创 2017-12-02 01:06:32 · 46747 阅读 · 7 评论 -
【笔记】B-树和B+树
B-树的定义B-树的查找B-树的插入操作B-树的删除操作B+树原创 2017-11-21 23:22:19 · 3646 阅读 · 0 评论 -
【笔记】串及其应用
一串的概念串的定义串的抽象数据型二串的表示串的顺序表示串的堆分配表示串的块链式表示三串的实现顺序串的实现及应用串的堆分配实现块链串的实现四串的模式匹配算法原创 2017-10-11 21:35:10 · 1675 阅读 · 0 评论 -
【笔记】哈希表
查找算法的高取决于比较的次数。如果不经过比较就能确定要查找的元素的位置,那么查找效率就会大大提高,这就需要建立一种数据元素的关键字与数据元素存放地址之间的对应关系,通过数据元素的关键字直接确定其存放的位置,即哈希表,又称散列表。原创 2017-11-25 01:34:08 · 421 阅读 · 0 评论 -
【笔记】单源点最短路径
单源点最短路径迪杰斯特拉算法迪杰斯特拉算法实现应用实例1.单源点最短路径 单源点最短路径问题:给定图G=(V,E),每条边(i,j)上都标有非负实数C[i][j]作为它的权;在图中指定一个顶点v作为源点,求从v到其他每个顶点的最短路径长度。单源最短路问题的进一步推广是求每对顶点之间的最短路径。2.迪杰斯特拉算法 基本思想:将V分成两个集合S和V-S。其中S是最短路径已经确定的顶点集合原创 2018-01-01 19:31:34 · 932 阅读 · 0 评论 -
【笔记】线段树
一、线段树的基本概念二、线段树的基本操作1.建立线段树 与区间有关的操作,比如统计线段的长度、记录一个区间内子线段的分布、统计落在区间内的数据频率等,并在线段或数据的插入、删除和修改中维护这些特征值。线段树具有良好的树形二分结构,能够高效地完成这些操作。一、线段树的基本概念 一颗二叉树,即为T(a,b),参数a,b表示该节点表示区间[a,b]。区间长度b-a...原创 2018-03-07 17:13:11 · 188 阅读 · 0 评论