数据结构
文章平均质量分 89
火雨_Nick
喜欢IT和机械
展开
-
最短路径Dijkstra算法
最短路径Dijkstra算法 最短路径的Dijkstra算法的基本思想是:设S为最短路径已确定的顶点集,V-S是最短距离尚未确定的顶点集。初始时,将源点V0添加到顶点集S中,即S={V0}。在当前顶点集V-S中选择一个最短路径最小的顶点来扩充顶点集S,以保证算法按路径长度递增的次序产生各顶点的最短路径。 其程序如下: #include #i转载 2016-03-13 22:44:34 · 1427 阅读 · 2 评论 -
求最小生成树Kruskal算法
求最小生成树Kruskal算法 在VS2010中新建C++ Win32 控制台应用程序项目,创建结果截图: Kruskal算法的基本思想是:将图G中的边按权值从小到大的顺序依次添加,如果添加的边使生成树T构成回路,则将其舍弃,依此下去,直到T中包含的边数为n-1条边为止,此时的T即为最小生树。 为了方便输出,将最小生成树的输入格转载 2016-03-14 22:03:19 · 1601 阅读 · 0 评论 -
广义表的创建与打印
广义表的创建与打印 1.广义表的创建: 广义表可以通过下面的递归方式进行定义。 基本项:(1)广义表为空表,当s为空时;(2)广义表为原子结点,当s为单字符串时。 归纳项:假设Subs为S去掉最外层括号对的串,记作“S1,S2,...,Sn”,其中Si(i=1,...,n)为非空字符串。对每个Si建立表结点,并令其hp域的指针为由Si建转载 2016-03-16 23:05:45 · 7592 阅读 · 1 评论 -
哈夫曼树的创建和编码
哈夫曼树的创建和编码 1.哈夫曼树又称最优二叉树,是一类带权路径长度最短的树。 对于最优二叉树,权值越大的结点越接近树的根结点,权值越小的结点越远离树的根结点。 最优二叉树的构造算法步骤: (1)根据给定的n个权值w1,w2,...,wn构成n棵二叉树森林F={T1,T2,...,Tn},其中每一棵二叉原创 2016-03-19 21:30:16 · 41709 阅读 · 2 评论 -
二叉树遍历算法总结
二叉树遍历算法总结 A. 二叉树的遍历 1.前序遍历二叉树: (1)若二叉树为空,则为空操作,返回空。 (2)访问根结点。 (3)前序遍历左子树。 (4)前序遍历右子树。 a.二叉树前序遍历的递归算法: void PreOrderTraverse(BiTree B转载 2016-03-20 18:43:19 · 13031 阅读 · 0 评论 -
二叉排序树(BST)构造与应用
二叉排序树(BST)构造与应用 二叉排序树(BST):又称二叉查找树,其定义为:二叉排序树或者是空树,或者是满足以下性质的二叉树。 (1) 若它的左子树非空,则左子树上所有记录的关键字均小于根记录的值。 (2) 若它的右子树非空,则右子树上所有记录的关键字均大于根记录的值。 (3) 左、右子树本身又各是一棵二叉排序树。转载 2016-03-20 23:23:46 · 26537 阅读 · 5 评论 -
单链表的创建算法
单链表的创建算法 当一个序列中只含有指向它的后继结点的链接时,就称该链表为单链表。 单链表的示意图如下: Head指针为单链表的头指针,单链表L:L既是单链表的名字,也是其头指针。链表中的最后一个结点的指针域定义为空指针(NULL)。 单链表原创 2016-03-26 23:34:51 · 51928 阅读 · 5 评论 -
内部排序总结
内部排序总结 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面。一个优秀的算法可以节省大量的资源。在各个领域中考虑到数据的各种限制和规范,要得到一个符合实际的优秀算法,得经过大量的推理和分析。 以下对排序算原创 2016-04-11 23:50:10 · 1424 阅读 · 2 评论 -
快速排序算法
快速排序算法 本文参考清华大学出版社《数据结构与算法(C语言版)(第三版)》,详情请见书本。 快速排序是已知排序算法中速度最快的。 快速排序对序列S进行排序分成以下4步: (1)如果S中只有1或者0个元素,则返回。 (2)在S中任意取一个元素v,称为枢纽元(pivot)。 (3)将S-{v原创 2016-03-28 23:40:19 · 1723 阅读 · 0 评论 -
图的深度优先和广度优先搜索算法
图的深度优先和广度优先搜索算法 1.图的深度优先搜索算法: 图的深度优先搜索算法的基本思想是:从图G的某个顶点V0出发,访问V0,然后选择一个与V0相邻且未被访问过的顶点Vi访问,再从Vi出发选择一个与Vi相邻且未被访问的顶点Vj进行访问,依此下去,直到当前被访问过的顶点的所有邻接顶点都已被访问,则按相反顺序退回到已访问的顶点序列中,如果其中的顶点还存在未被访转载 2016-03-13 16:21:33 · 6715 阅读 · 2 评论