数据结构与算法——图形结构(七)

数据结构——图

1、图的基本概念

2、图的数据表示法

2.1 邻接矩阵表示法

  假设一个图A有n个顶点,我们以n*n的二维矩阵列来表示它,这个二维矩阵就是该图的邻接矩阵,此矩阵的定义如下:对于一个图G=(V,E),假设有n个顶点,n>=1,则可以将n个顶点的图使用一个n*n的二维矩阵来表示,其中A(i,j)=1,则表示图中有一条边(Vi,Vj)存在,反之,A(i,j)=0,则不存在(Vi,Vj)。

  相关特性说明如下:

  (1)对无向图而言,邻接矩阵一定是对称的,而对角线一定为0。有向图则不一定如此。

  (2)在无向图中,任意结点 i 的度数就是第 i 行所有元素的和。在有向图中,结点 i 的出度就是第 i 行所有元素之和;结点 j 的入度就是第 j 列所有元素之和。

  (3)用邻接矩阵法表示图共需要 n^2 个单位空间,由于无向图的邻接矩阵具有对称关系的,扣除对角线全部为 0 外,仅需要存储上三角形数据即可,因此仅需要n(n-1)/2。

  接下来,我们看一个实际的例子,以邻接矩阵来表示无向图,无向图如下图所示:

  该无向图的邻接矩阵表示为:

  我们接下来使用程序来创建邻接矩阵表示这个无向图,该程序使用Python实现:

 

  

 

 

 

3、图的遍历

4、生成树

5、最短路径问题

猜你喜欢

转载自www.cnblogs.com/xiaoboge/p/10857617.html