1图的存储方式
邻接矩阵和邻接表
1.邻接矩阵:
表示顶点之间相邻关系的矩阵。
设G=(V,E)是具有n个顶点的图,顶点序号依次为0,1,…,n-1,则表示G的邻接矩阵是具有如下定义的n阶方阵A:
A[i][j]=1表示顶点i和顶点j邻接,即i和j之间存在边或者弧。
A[i][j]=0表示顶点i和j不邻接(0<=i,j<=n-1).
邻接矩阵是图的顺序存储结构,由邻接矩阵的行数或列数可知图中顶点数。对于无向图,邻接矩阵是对称的,矩阵中1的个数为图的边数的两倍,矩阵中的第i行或第i列的元素之和即为顶点i的度。对于有向图,矩阵中的1的个数为图的边数,矩阵中的第i行元素之和即为顶点i的出度,矩阵中第j列元素之和即为顶点j的入度。
2.邻接表:
邻接表是图的一种链式存储结构。
所谓邻接表就是对图中的每个顶点i建立一个单链表,每个单链表的第一个节点存放有关顶点的信息,把这一节点看作链表的表头,其余结点存放有关边的信息。因此,邻接表由单链表的表头形成的顶点表和单链表其余节点形成的边表两部分组成。一般顶点表存放顶点信息和指向第一个边结点指针,边表结点存放与当前结点相邻接顶点的序号和指向下一边结点的指针
3.邻接多重表:
邻接多重表和十字链表类似,也是由顶点表和边表组成的,每一条边用一个结点表示,其中,顶点表由两个