图
文章平均质量分 67
perry0528
这个作者很懒,什么都没留下…
展开
-
数据结构 || 图中两点的最短路径(迪杰斯特拉算法)
从某个顶点出发到其他所有各点的最短路径迪杰斯特拉算法数据结构采用有向图的邻接矩阵存储。算法基本思想:依路径长度递增的次序来求各个路径。长度最短的路径一定是一条从源点直达的弧。其他长度的路径求原点到其最短路径一定是以下两种情况之一:源点到此点一条直通弧。前面已经求得的最短路径中的其他顶点中到它的直通弧。代码实现:#include <iostream>#inc...原创 2019-01-24 13:22:27 · 2959 阅读 · 0 评论 -
数据结构 || 图中两点间的最短路径(弗洛伊德算法)
原理讲解参考:https://www.cnblogs.com/wangyuliang/p/9216365.html代码实现:#include <iostream>#include <limits.h>#include <string>#include <vector>#include <iomanip>using names...原创 2019-01-25 15:47:09 · 1437 阅读 · 0 评论 -
数据结构 || 图深度优先搜索遍历以及求两点间的简单路径
本文图的存储结构是基于无向图的邻接多重表实现的图的深度优先搜索的递归遍历void DFS(AMLGraph G, int i) { cout << G.adjmulist[i].data << endl; visit[i] = visited; for (int w = FirstAdjVex(G, i); w >= 0; w = NextAdjVex(G,...原创 2019-01-21 16:43:23 · 3715 阅读 · 4 评论 -
数据结构 || 图的广度优先搜索遍历以及求两点间的最短路径
图的广度优先搜索遍历:存储的数据结构为无向图的多重邻接表类似于树的层序遍历,依次按照路径为1,2,3…进行遍历,因而每次要获得一个节点然后得到这点的未经访问的邻近点后再将此点抛弃,因此我们用队列这一结构。void BFSReverse(AMLGraph G) { queue<int> a; for(int i = 0; i < G.vexnum; ++i) { ...原创 2019-01-21 21:49:59 · 3771 阅读 · 0 评论 -
图的最小生成树 || Prim算法和Kruskal算法的c++实现
Prim算法和Kruskal都是典型的贪心算法,也就是在求解最小生成树时,我们总是不从全局考虑,而每次仅仅是考虑局部最优解。下面的算法都基于无向图的邻接多重表。Prim算法:算法描述:基本步骤:设R是有n个定点的对称连通关系。1)选取R的一个定点v1,设V = {v1}, E={}。2)选取与vj ∈ V邻接的V的最近邻元vi, 并且边(vi, vj)不与E中元素形成回路。添加vi到...原创 2019-01-23 01:42:25 · 1779 阅读 · 0 评论 -
数据结构 || 求连通图的关节点
对图的存储结构基于无向图的邻接多重表。关节点和重连通图:假若在删去顶点v以及v相关联的各边之后,将图的一个连通分量分割成两个或两个以上的连通分量,则称顶点v为该图的一个关节点。如果没有关节点的连通图则称为重连通图(双连通图)。算法实现:1. 方法一:最简单也是最直接的算法是,删除一个点然后判断连通性,如果删除此点,图不再连通,则此点是关节点,反之不是关节点(图的连通性一般通过深搜来判定...原创 2019-01-23 15:06:21 · 2981 阅读 · 0 评论