数据结构
文章平均质量分 67
Echo_咪
to feel rather than think.
展开
-
二叉树
本文包含以下内容:一.二叉树的一些基本概念二.两条定理三.二叉树的层次历遍四.二叉树的数组实现和链表实现五.二叉检索树六.总结一.二叉树的基本概念二叉树:一个点的集合,这个集合要么为空,要么包含一个根节点和两个子二叉树祖先和子孙:如果一条路径从结点R至M,那么R是M的祖先,M是R的子孙深度、高度、层数:R至M路径长度为L,则至M的深度为L,高度为L+原创 2016-08-15 18:22:02 · 900 阅读 · 0 评论 -
队列和堆栈
本文主要包含以下内容:1.栈以及栈的实现2.队列以及队列的两种实现方式3.总结1.栈以及栈的两种实现原创 2016-08-15 13:11:12 · 254 阅读 · 0 评论 -
判断图中是否存在环
参考博客:xwdreamer的专栏1.对于无向图,有以下三种方法剪枝、无环连通分支边数m1.1剪枝1删除所有度数为0的点2把所有度数为1的点入队3.从队列中取出一个点,删除这个点,并且所有与这个点相关联的点的度数都减14.重复步骤2、3直到队列为空如果还有为被删除的点,说明存在环1.2无环连通分支边数m通过BFS,DFS可以得到图的连原创 2016-08-26 17:11:08 · 2436 阅读 · 0 评论 -
线性表--顺序表及链表
本文包含以下内容:一、线性表的介绍以及抽象ADT二、顺序表及顺序表的实现三、链表及链表的实现四、顺序表和链表的比较五、总结参考书目:《数据结构与算法分析》【美】Clifford A.Shaffer著一、线性表的介绍以及抽象ADT1.什么是线性表?关键字:线性、有序、有限。所谓线性,是一个元素接着一个元素,就像一条线那样排放。而不是离散散乱的,原创 2016-08-15 07:24:53 · 1556 阅读 · 0 评论 -
最小生成树
1.MST(Minimum spanning tree)A minimum spanning tree is a spanning tree of a connected,undirected graph.It connects all the verticals together with the minimum total weighting for it's edges.最小生原创 2016-08-26 14:08:26 · 370 阅读 · 0 评论 -
AVL树的旋转
转载出处:http://blog.csdn.net/collonn/article/details/20128205AVL树的旋转操作 图解 最详细各大教课书上讲的都是左旋与右旋,其实这样很容易理解错误,我们换一种叫法。我们称呼左旋为:逆进针旋转。我们称呼右旋为:顺进针旋转。老规矩,直接上图。如果再看不懂AVL树的旋转,我就无能为原创 2015-06-07 18:33:37 · 327 阅读 · 0 评论 -
单源最短路径算法
1.单源最短路径以及Dijsktra算法2.多源最短路径以及Floyd算法1.1单源最短路径:即从一个特定的点出发,寻找这个点到其他点的最短路径对于一个无权图,BFS算法就可以了。但是对于加权图,BFS行不通1.2 Dijkstra(迪杰斯特拉):针对加权有向图、单源最短路径dijkstra通过一个简单的动态规划思想来求最短路径。(假设求从点s出的的单源原创 2016-08-26 15:40:24 · 3329 阅读 · 0 评论 -
排序算法
关键词:插入冒泡选择、希尔归并快排、堆排序倒着讲1.堆排序1.1有关堆与优先队列,看这里堆与优先队列1.2堆排序的思想: 最大堆,每次把根从堆中取出来删去,然后从新建堆,并把取出来的元素放到数组的最后 那么最大的元素被放到n-1的位置,第二大的元素被放到n-2的位置。。。直到最后,数组就变成的由小到大的顺序 1.3算法复杂度 最好最差平均原创 2016-08-27 11:00:54 · 420 阅读 · 0 评论 -
堆与优先队列
1.针对的问题:很快的找出最大的元素(最大堆)、很快的找出最小的元素(最小堆) 它不适用于从一堆数中检索某一个数 如何去定义一个堆?抓住两点: 完全二叉树、任何一个内部结点的值大于等于其子节点的值 一个堆一定是完全二叉树的形式:节约空间、可以很方便的用数组表示 最大堆:根大于等于任何一个子节点(堆原创 2016-08-27 10:06:55 · 384 阅读 · 0 评论