
Graph
数据结构-图论
weizongpu#76
这个作者很懒,什么都没留下…
展开
-
最小生成树算法流程
Prim算法Kruskal算法https://blog.youkuaiyun.com/qq_41596915/article/details/104097850原创 2020-08-19 20:57:20 · 424 阅读 · 0 评论 -
单源点最短路径算法流程(Dijkstra)
代码及实现:https://blog.youkuaiyun.com/qq_41596915/article/details/104098046原创 2020-08-19 21:00:18 · 374 阅读 · 0 评论 -
图的深度遍历算法和广度遍历算法(c++)
广度优先遍历算法(BFS)图的深度优先遍历算法用到的辅助存储结构包括队列和一个辅助标记数组空间复杂度O(V)时间复杂度 邻接矩阵O(V^2) 邻接表O(V+E)bool visited[MAX_VERTEX_NUM]; // 访问标记数组queue<VertexType> Q; // 存储顶点的队列 bool BFSTraverse(Graph G){ for(int i=0; i<G.vexnum; i++) visited[i] = FALSE; //原创 2020-08-04 00:01:30 · 888 阅读 · 0 评论 -
最短路径
一、Dijkstra算法Dijkstra算法求解从v0到达其他各个顶点的最短路径Dijkstra的特有属性public static int[] dist; // 目前已找到的,从v0到vi的最短路径的长度public static String[] path; // 目前已找到的,从v0到vi的最短路径public static boolean[] flag; // 用来标...原创 2020-01-28 10:54:41 · 239 阅读 · 0 评论 -
AOE-网的关键路径
AOE-网边表示活动的有向无环网AOE-网的相关概念从源点到汇点的最长路径的长度为整个任务的所需时间,该路径称为关键路径1、事件vi的最早发生时间ve(i):ve(i) = max{ve(i.preVex) + Arc(i.preVex->i)}2、事件vi的最晚发生时间vl(i):vl(i) = min{vl(i.postVex) + Arc(i->i.postVex)...原创 2020-01-28 10:50:27 · 370 阅读 · 0 评论 -
AOV-网的拓扑排序
AOV-网的定义顶点表示活动的有向无环图拓扑排序的定义用来表示活动间的优先关系,拓扑排序的顺序得到拓扑序列拓扑排序的特有属性public static int[] indegree; // 记录各顶点的入度邻接顶点的个数indegree = new int[VEXNUM];LinkedList<String> stack; // 辅助栈stack = new L...原创 2020-01-28 10:43:02 · 464 阅读 · 0 评论 -
最小生成树(Minimum Cost Spanning Tree)
MST的性质若(u, v)是一条具有最小权值的边,则存在一棵包含边(u, v)的最小生成树最小生成树的算法就是基于MST这个性质写的一、Prim算法Prim算法也称为"加点法",从v0开始,根据MST的性质每次添加一条最小花费的顶点到集合UPrim特有属性class Closedge { // closedge[]的作用是记录从U到V的最小花费和邻接边 String ad...原创 2020-01-28 10:33:25 · 818 阅读 · 0 评论 -
图的遍历(BFS和DFS)
一、深度遍历算法 Depth First Srarch1、图的深度遍历算法类似于树的先序遍历,利用函数的递归算法遍历DFS的特有属性public static boolean visited[]; // visited[] 访问标志数组,每次访问后置visited[i]为truevisited = new boolean[VEXNUM];DFS算法public void DFS...原创 2020-01-28 10:22:11 · 241 阅读 · 0 评论 -
Adjacency Multi-list(邻接多重表)
邻接多重表的特点1、在邻接表无向图中,一条边的两个节点分别在两个链表中1、在邻接多重表中,将无向图中关于一条边的信息用一个节点表示邻接多重表的属性public static final int MAX_VEXNUM_NUM = 20; // 最大顶点数public static final int INF = 32768; // 表示无穷大public static int...原创 2020-01-28 10:15:56 · 707 阅读 · 0 评论 -
十字链表(Orthogonal List)
十字链表的特点1、可以看成有向图将邻接表和逆邻接表结合,每个结点有两个指针域,分别指向入度边链表和出度边链表2、时间复杂度与邻接表相同3、容易计算顶点的度十字链表的属性 public static final int MAX_VEXNUM_NUM = 20; // 最大顶点数 public static final int INF = 32768; // 表示无...原创 2020-01-28 10:11:28 · 694 阅读 · 0 评论 -
邻接表(Adjacency List)
邻接表的特点:1、n个顶点、e条边的无向图的存储空间是n+2e2、无向图顶点的度是第i个单链表上结点的个数3、邻接表适用于稀疏图4、如果要判断任意两顶点是否有边或弧,需要搜索所有的边链表邻接表的属性public static final int INF = 32768; // 极大值public static final int MAX_VERTEX_NUM = 20; ...原创 2020-01-28 10:04:13 · 1737 阅读 · 0 评论 -
邻接矩阵(Adjacency Matrix)
邻接矩阵的特点:1、对于有n个顶点的无向图最多需要n(n-1)/2个存储空间,有向图最多需要n^2个存储空间2、对于无向图,邻接矩阵第i行元素之和是图第i个顶点的度3、邻接矩阵适用于稠密图4、方便搜索两顶点是否有边或弧邻接矩阵的属性 public static final int INF = 32768; // 无穷大 public static final int...原创 2020-01-28 09:58:05 · 5642 阅读 · 0 评论