图的基本定义
图是由一组顶点和一组能够将两个顶点相连的边组成的。
图是一个二元组,即G=(V ,E)。V(vertex)是顶点集,E(edge)是边集。每条边就是一组顶点对(v,w)。v,w∈V。边也叫做弧(arc)
有向图:如果顶点对是有序的,或者弧是有向,则图是有向图。
无向图:如果顶点v,w都属于E,则v,w是邻接的。如果v,w邻接,w,v也邻接。则说明图是无向图。
连通图:如果任意一个顶点都存在一条路径到达另一个任意顶点,那这副图就是连通图。
连通子图:一副非联通的图由若干个连通的部分组成,他们都是最大连通子图。
树:在图的概念下,树其实是一个副无环连通图。互不相连的树组成的集合叫森林。
生成树:生成树是树的一副子图,他含有树的所有顶点,并且是一棵树。
生成树森林:所有连通子图的生成树集合。
权值(Weight):与图的边和弧相关的数。权可以表示从一个顶点到另一个顶点的距离或耗费。
最小生成树(MST):图的最小生成树,是一棵权值(树中所有边的权值之和)最小的生成树。
图的数据结构
邻接矩阵:用一个一维数组存放图中所有顶点数据;用一个二维数组存放顶点间关系(边或弧)的数据,这个二维数组称为邻接矩阵。
邻接表:用一个一维数组存所有顶点。对每个顶点用一个链表存储该顶点的邻接点。