一,图的基本定义和术语
有向图:弧尾,弧头
无向图:端点,临结点
完全图:有n(n-1)/2条边为完全图
有向完全图:有n(n-1)条边
稀疏图:有很少条边或者弧的图
稠密图:有很多条边
子图:一个图中的边和定点是另外一个图中所有的边和顶点
网:边带有权值
度:入度和初度
简单路径:路径定点不重复
回路:开始点和结束点是一个点。
连通图:任意两个定点之间存在路径
强连通图:是针对有向图而言
生成树:极小连通子图。
二:图的存储方式
1,邻接矩阵
2,邻接表
三:图的遍历
1,图的深度优先遍历
<1>,访问初始结点V,并标记已被访问
<2>,查找顶点V的第一个邻接点W
<3>,若顶点W存在,继续执行,否则访问V的另一个邻接点
<4>若顶点W未被访问,则访问W,并对W进行标记
<5>,继续查找w的下一个邻接点wi,若v取值wi,则转<3>,直到图中所有顶点都被访问。
四:图的应用
1,拓扑排序和关键路径
一个无环又向图是描述一项工程或者系统的进行过程的有效工具,对于整个工程和系统,人们关心的两个方面的问题是:工程能否正常进行;估算工程完成横所必需的时间。对于有向无环图,也就是进行拓扑排序和关键路径的操作。
AOV网(Activity on vertex Netword)和拓扑排序:也称作顶点表示活动的网,也就是用顶点表示活动,用边表示优先关系。
拓扑排序是对AOV网构造一个线性序列,使得所有的优先关系在此序列上得以体现。换句话说,就是AOV网中,若Vi是Vj的前驱,那么在拓扑排序中,vi必须在vj的前面。
拓扑排序步骤如下:
1, 在有向图中选取一个没有前驱的顶点,输出
2,从图中删除该顶点和以他为尾的弧
3,重复a和b,直到全部顶点输出。
注意一种情况:图中还有顶点未被输出,但是已经不存在无前驱的节点了,说明此图有环。因此拓扑排序可以用来检验有向图中是否有环。一个有向无环图的拓扑排序是不唯一的。