完全图(有 n 个顶点的无向完全图有 n(n-1)/2 条边,有 n 个顶点的有向完全图有 n(n-1) 条边)
平面图/非平面图(无论怎样画,都有边在非顶点处相交)
无向图的边用圆括号表示(v1.v2),有向图的边用尖括号<v1,v2>
简单路径 :路径上的点不重复
连通图:任一对顶点都是连通的
例: 对于G而言,有两个连通分量
图的存储:矩阵存储(一维数组,存放数据元素;二维数组,存放数据之间的关系)
考虑权重,将1改成权重即可
链表存储
考虑权重的话,每个节点还要再加一份空间
图的遍历:
对每个顶点作一个访问标志防止多次访问
深度优先DFS:
广度优先BFS
上面的例子 思想同树的广度优先(队列)
从某顶点开始遍历图,不一定能访问到图中的所有元素(因为图不一定是连通的)
最小连通代价问题
克鲁斯卡尔方法:优先选则最小的边(离散讲过)
普利姆方法
最小生成树不唯一
最短路径问题
单元多点有向图最短路径问题:
v1为起点,表格如图所示初始化
V1-v4距离最短,标记V4,对与V4邻接的节点进行处理
此时dist最小的是V2,对V2临界点进行处理
如此往复,直到所有点都被标记,从V1到某一点V的路径为:依次输出节点的path直至path=-1
AOV网络:用顶点表示工程的活动,有向边表示活动之间的优先关系的有向图
拓扑序列:对于有向图,其顶点V1,V2,...Vn的一种排列,如果满足:Vi到Vj有一条有向路径,则Vi排在Vj前面。则称为顶点的一个拓扑序列。
AOV如果有合理的拓扑序,则必定是一个有向无环图
进行拓扑排序的方法:重复选取入度为0的顶点输出
AOE网络:有向边表示活动,
AOV是研究AOE的前提
关键路径:从源点到汇点权值最长的路径/没有机动时间的路径???
最早发生时间Ve
最晚发生时间Vl