第六章小结

 

邻接矩阵是表示顶点之间相邻关系的矩阵。设G=(V,E)是一个图,其中V={v1,v2,…,vn}。G的邻接矩阵是一个具有下列性质的n阶方阵:

①对无向图而言,邻接矩阵一定是对称的,而且主对角线一定为零(在此仅讨论无向简单图),副对角线不一定为0,有向图则不一定如此。

②在无向图中,任一顶点i的度为第i列(或第i行)所有非零元素的个数,在有向图中顶点i的出度为第i行所有非零元素的个数,而入度为第i列所有非零元素的个数。

③用邻接矩阵法表示图共需要n^2个空间,由于无向图的邻接矩阵一定具有对称关系,所以扣除对角线为零外,仅需要存储上三角形或下三角形的数据即可,因此仅需要n(n-1)/2个空间。

 

邻接矩阵与邻接表比较:

对于一个具有n个顶点e条边的无向图

它的邻接表表示有n个顶点表结点2e个边表结点

对于一个具有n个顶点e条边的有向图

它的邻接表表示有n个顶点表结点e个边表结点

如果图中边的数目远远小于n2称作稀疏图,这是用邻接表表示比用邻接矩阵表示节省空间;

如果图中边的数目接近于n2,对于无向图接近于n*(n-1)称作稠密图,考虑到邻接表中要附加链域,采用邻接矩阵表示法为宜。

 

在无向图中求顶点的度,使用邻接矩阵及邻接表法都很容易做到

邻接矩阵中第i行(或第i列)上非0元素的个数就是顶点Vi的度

在邻接表中第i个边表的结点个数就是顶点Vi的度

 

在有向图中求顶点的度采用邻接矩阵比采用邻接表表示更方便

邻接矩阵中第i行非零元素的个数是顶点Vi的入度

邻接矩阵中第i列非零元素的个数是顶点Vi的出度

二者之和就是定点Vi的度数

 

邻接表表示中第i个边表上的结点个数就是顶点Vi的出度,求入度较困难,需遍历个顶点的边表

逆邻接表表示中第i个边表上的结点个数就是顶点Vi的入度,求出度较困难,需遍历个顶点的边表

 

在邻接矩阵中求边的数目必须检测整个矩阵,所消耗的时间是O(n)

在邻接表中求边的个数,只要对每个边表计数即可求得所消耗的时间是O(n+e)

posted @ 2019-05-19 17:51  JesseChen  阅读(257)  评论(1编辑  收藏  举报