图(二)
数据对象集:一非空的顶点集合Vertex和一个边集合Edge,每条边用对应的一对顶点表示。
表示方法:
一:邻接矩阵
顶点信息:有n个顶点的图G(V, E) 用一维数组D [ n ] 表示
边的信息:用邻接矩阵A [ n ] [ n ] 表示为
二,邻接表
对于图G中的每个顶点vi,将所有邻接于vi的顶点vj链成一个单链表,这个单链表就称为顶点vi的邻接表,再将所有点的邻接表表头放到一个数组中,就构成了图的邻接表。
无向图中有n 个顶点和e条边,则它的邻接表需n个头结点和2e个表边结点。显然,在边稀疏 ( e << n(n-1)/2 ) 的情况下,用邻接表表示图比邻接矩阵节省存储空间
无向图的邻接表,顶点vi的度恰为第i个链表中的结点数;而在有向图中,第i个链表中的结点个数只是顶点vi的出度,为便于确定顶点vi的入度,可以建立一个有向图的逆邻接表,即对每个顶点vi 建立一个链接以vi为头的弧的链表。