图的存储结构

未匹配的标注

2. 图的存储结构

图有两种主要的存储结构,它们是邻接矩阵表示法和邻接表表示法,如表所示。

图

图

2.1 邻接矩阵

用一个n 阶 方阵R来存放图中各结点的关联信息,其矩阵元素R_i,_j定义为

R_i,_j=\left\{ \begin{aligned} 1 若顶点i到顶点j有邻接边 \\ 2 若顶点i到顶点j无邻接边 \\ \end{aligned} \right.

图的概念-存储结构-遍历,最小生成树

图里面有多少个结点

一般我们用一个n 阶 方阵R来存放图中各结点的关联信息。(方阵指长和列相等)
注意:图里面有多少个结点,就要用多少✖多少的矩阵。

如图,图中有5个结点,则生 5*5 方阵。

那么如下我们给出一个 R_1 矩阵(别问我是怎么生成的,就是画的。现在还没学到转化)

R_1=\left\{ \begin{aligned} 01100\\ 10100\\ 11011\\ 00101\\ 00110\\ \end{aligned} \right.

他们要存的话,完全图也是一个邻接矩阵,只要存一半即可。不管你是上三角,还是下三角,都可以。
我们计算的元素半身半三角公式为:
(n*n-n)/2 +n

图的概念-存储结构-遍历,最小生成树

对上文矩阵中 0 和 1 的解析

如图,1 代表有邻接边(比如1到2)

0代表没有邻接边(比如 1到 4)

2.2 邻接表

首先把每个顶点的邻接顶点用列表示出来,然后用一个一维数组来顺序存储上面每个链表的头指针。

图的存储结构
看图片我们来解释一下,左上角这个顶点V1,
可以到V2,V4,V6.
所以他有三个链。

一个是长度为六的V2,
一个是长度为一的V4。
还有一个长度为50的V6。
其他的依次类推。

依次如此排列,这就是邻接。
这个顶点的表头,可以到其他的链表,这就是邻接表。

PS

虽然你看文章只需要3分钟,但是我写它用了2小时。
一边学习,一边写文档不易。给点小点赞,支持一下吧。加油!

防爬虫说明

禁止 学习某地爬虫,知乎爬虫,CSDN 爬虫。

本文,首发在 learnku 社区。

@author
汪春波(www.shxdledu.cn)

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
wangchunbo
讨论数量: 0
发起讨论 只看当前版本


暂无话题~