首先我们先说下图论,一般图存储可以使用邻接矩阵,或邻接表,一般使用邻接矩阵在稠密图比较省空间。
我们来说下有向图,一般的有向图也是图,图可以分为稠密图,稀疏图,那么从意思上,稠密图就是点的边比较多,稀疏图就是边比较少的图。为什么稠密图放在矩阵比较省空间,因为邻接表在边之间存储需要多余的指针,而矩阵不需要。
下面这张图:http://blog.csdn.net/tham_/article/details/46048063
我们只说有向图,我们把有向图存在矩阵
我们先说Warshall,假如我们有一张图
我们把这张图存储在矩阵
首先是a,a可以直接到b,那么ab就是1
接着就是b,b可以直接到c,那么bc就是1
Warshall | a | b | c | d | e |
---|---|---|---|---|---|
a | 0 | 1 | 0 | 0 | 0 |
b | 0 | 0 | 1 | 0 | 0 |
c | 0 | 0 | 0 | 1 | 0 |
d | 1 | 0 | 0 | 0 | 1 |
e | 0 | 0 | 0 | 0 | 0 |
那么Warshall怎么做,他需要做个十字形,因为有个定理,
Rij=Rik∪Rkj
其中ijk都是从0到n,这里n是点个数
那么我们得到的第一个矩阵,叫做
R0
那么由第一个矩阵变化出第二个矩阵就叫