一,什么是图
图是用来表示多对多的一种关系。
一个完整的图包含了一组顶点(通常用V来表示顶点的集合),一组边(通常用E表示边的集合,顶点实质上是顶点对,如(v,w)∈E,且边可分为无向边和有向边);一个图由非空的有限顶点集合V和一个有限边集合E组成(可以没有边集合,但一定要有顶点集合)。
边分为单向边和双向边,单向边用<v,w>表示从v指向w的边,而双向边则用(v,w)表示。
二,图的具体表现形式和相关操作集
(1)图的具体表现形式
邻接矩阵G[x][y](x,y表示顶点的编号)
用G[x][y]的值来表示x,y结点之间是否存在边
G[i][j]==1时就表示i,j结点之间存在边
G[i][j]==0则表示不存在该边
例:
但由于整个矩阵对角线两边对称,这样会使得空间浪费过大,那该怎么办呢?
我们可以用一个大小为n*(n+1)/2的一维向量来表示,G[0][0]用a[0]表示,G[0][1]用a[1]表示...以此类推。
(2)邻接表
可以通过指针的形式,将每个顶点与其他定点相连的顶点穿起来形成一个链表