![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构之图篇
文章平均质量分 85
发奋小青年
这个作者很懒,什么都没留下…
展开
-
邻接表的创建
邻接表 特点: 1、想要知道某个顶点的度,就去查找这个顶点的边表中结点的个数 2、若想判断顶点 Vi 到 Vj是否存在边,只需测试顶点 Vi 的边表中adjvex是否存在 Vj 的下标。 3、若求顶点的所有邻接点,其实就是对此顶点的边表进行遍历,得到adjvex域对应的顶点就是邻接点。 #inclu原创 2017-06-18 22:55:06 · 10111 阅读 · 2 评论 -
邻接矩阵的创建
图的术语总结 开场前首先介绍一下图中的基本术语: 图的分类:有向图和无向图。无向图有顶点和边构成,有向图由顶点和弧构成(弧有分为弧尾和弧头) 图按照边或弧的多少分为稀疏图和稠密图 如果任意两个顶点之间都存在边,叫做完全图。 (有向的叫做有向完全图) 若无重复的边或顶点到自身的边,叫做简单图。 无向图顶点的边数,叫做度。有向图分为入度和出度。原创 2017-06-18 21:07:59 · 14931 阅读 · 2 评论 -
克鲁斯卡尔算法
克鲁斯卡尔算法构建最小生成树 算法思想: 我们需要把m个节点看成m个独立的生成树,并且把n条边按照从小到大的数据进行排列。在n条边中,我们依次取出其中的每一条边,如果发现边的两个节点分别位于两棵树上,那么把两棵树合并成为一颗树;如果树的两个节点位于同一棵树上,那么忽略这条边,继续运行。等到所有的边都遍历结束之后,如果所有的生成树可以合并成一条生成树,那么它就是我们需要寻找的最小生成树,反之原创 2017-06-28 17:02:11 · 387 阅读 · 0 评论 -
迪杰斯塔拉算法—求最短路径
迪杰斯塔拉算法—求最短路径 这是一个按路径长度递增的次序产生最短路径的方法,并不是一下子就求出 v0 到 vi 的最短路径,而是一步步求出他们之间顶点的最短路径,过程都是易于已经求出的最短路径的基础上,求的更远顶点的最短路径,最终的到结果。 首先将图以邻接矩阵的形式表示出来。 代码 解析: 1、final[]数组是为了标记v0到某顶点是否已经求得最短路径,原创 2017-06-28 18:24:51 · 2059 阅读 · 0 评论 -
Floyd算法——最短路径
弗洛伊德算法(Floyed) Floyd算法是一个经典的动态规划算法。用通俗的语言来描述的话,首先我们的目标是寻找从点i到点j的最短路径。从动态规划的角度看问题,我们需要为这个目标重新做一个诠释(这个诠释正是动态规划最富创造力的精华所在) 从任意节点i到任意节点j的最短路径不外乎2种可能,1是直接从i到j,2是从i经过若干个节点k到j。所以,我们假设Dis(i,j原创 2017-07-13 21:33:00 · 383 阅读 · 0 评论