图
零零Hua
这个作者很懒,什么都没留下…
展开
-
最小生成树算法之克鲁斯卡尔(Kruskal)算法
//---Kruskal最小生成树算法---////1. 将各弧存放在线性表L中,并通过堆排序将其按弧权值从小到大排序//2.设置集合S,集合中数组表示图中的各个顶点//3.根据线性表L中各弧的顺序,依次选择各弧,通过判断各弧所依附顶点是否在集合S中的同一子集,来判断是否选择该弧为生成树//4.如果弧所依附的顶点分属不同的子集,则弧为生成树的弧,并将两个顶点所在集合并为同一个集合。#in...原创 2019-09-01 19:41:49 · 252 阅读 · 0 评论 -
最小生成树算法之克鲁斯卡尔(Kruskal)算法_修改版
//---Kruskal最小生成树算法---////1. 将各弧存放在线性表L中,并通过堆排序将其按弧权值从小到大排序//2.设置集合S,集合中数组表示图中的各个顶点//3.根据线性表L中各弧的顺序,依次选择各弧,通过判断各弧所依附顶点是否在集合S中的同一子集,来判断是否选择该弧为生成树//4.如果弧所依附的顶点分属不同的子集,则弧为生成树的弧,并将两个顶点所在集合并为同一个集合。#in...原创 2019-09-02 15:46:44 · 181 阅读 · 0 评论 -
连通图的关节点算法
//---连通图的关节点寻找算法---////连通图的深度优先生成树中关节点特性://1.若生成树的根有两棵或两棵以上的子树,则此根顶点必为关节点,因为图中不存在联结不同子树中顶点的边;//2.若生成树中某个非叶子顶点,其某棵子树的结点均没有指向该结点的祖先的回边,则该结点必为关节点。#include <stdio.h>#include <stdlib.h>#i...原创 2019-09-08 11:10:51 · 1640 阅读 · 2 评论 -
连通图的关节点算法及双连通分量的输出
//---连通图的关节点寻找算法及输出双连通分量---////连通图的深度优先生成树中关节点特性://1.若生成树的根有两棵或两棵以上的子树,则此根顶点必为关节点,因为图中不存在联结不同子树中顶点的边;//2.若生成树中某个非叶子顶点,其某棵子树的结点均没有指向该结点的祖先的回边,则该结点必为关节点。//双连通分量:去掉任意一个结点都不会改变图的连通性,即不存在关节点//双连通分量算法:...原创 2019-09-17 21:20:42 · 587 阅读 · 1 评论 -
有向无环图的拓扑排序
//---拓扑排序算法---//拓扑序列是指顶点活动网(AOV-网)中将活动(即顶点)按发生的先后次序(即从弧尾顶点弧头顶点)进行的一种排列//1.在有向图中选一个没有前驱的顶点且输出之;//2.从图中删除顶点和所有以它为尾的弧;//3.重复上述两步,如果全部顶点已输出,则完成,如果最后图中不存在无前驱的顶点,则图中存在环。#include <stdio.h>#includ...原创 2019-09-18 22:42:07 · 550 阅读 · 0 评论 -
有向图的强连通分量算法之Tarjan算法
//有向图的强连通分量:利用深度优先搜索树求有向图的强连通分量//------Tarjan算法:------\\//(1)设置DFN和LOW两个数组,其中DFN用于按搜索顺序给各个结点盖时间戳,LOW用于表示当前结点所能到达的最前的结点(即DFN/LOW最小)//(2)按深度优先搜索方法遍历,并更新各结点LOW值;//(3)最后判断DFN和LOW值是否相等,相等则该点为后续结点能到达的最前...原创 2019-08-29 21:12:29 · 141 阅读 · 0 评论 -
有向无环图的关键路径算法(修正)
//---关键路径算法---//关键路径:在边表示活动网(AOE-网)中,从开始点到完成点的最长路径。//最早开始时间等于最迟开始时间的活动即为关键活动,e(i)==l(i)。//而活动的最早开始时间等于弧尾结点表示的事件的最早发生时间,e(i)==ve(j)//活动的最迟开始时间等于弧头结点表示的事件的最迟发生时间减去活动所需时间,l(i)==vl(k)-dut(<j,k>)...原创 2019-09-21 22:59:32 · 539 阅读 · 0 评论 -
图的表示方法---邻接表
在建立邻接表时,若输入的顶点信息即为顶点的编号,则建立邻接表的时间复杂度为O(n+e),否则需要通过查找才能得到顶点在图中位置,则时间复杂度为O(n*e)在邻接表上容易找到任一顶点的第一个邻接点和下一个邻接点,但要判定任意两个顶点之间是否有边,则需要搜索该链表,不及邻接矩阵方便。#include <stdio.h>#include <stdlib.h>#includ...原创 2019-08-16 10:03:55 · 440 阅读 · 0 评论 -
图的最短路径之Dijkstra算法
```c//---最短路径之Dijkstra算法:从某个源点到其余各顶点的最短路径---//1.选择集合V-S中距离集合S中点最近的点,加入集合S,//2.再通过新加入的点更新从集合S中的点到集合V-S中的点的距离。//P[i]=w表示从源点到点i的最短路径须先从源点到w点,再通过P[w]往前推,即可算出从源点到i点的最短路径经过的所有点#include <stdio.h>...原创 2019-09-24 22:00:41 · 266 阅读 · 0 评论