树和图的存储方式

 

树和图的存储方式

树是特殊的图,因此我们只需要考虑图的存储方式。图分为有向图和无向图,我们可以把无向图看成是特殊的有向图,一条无向边便等价于两条反向的有向边,因此,我们只需考虑有向图的存储方式:

1. 邻接矩阵

考虑两个点 a, b,那么邻接矩阵中g[a][b]就存储的是边的权重(如果所有边的权重相等,就存储bool值,0代表没有边,1代表有边相连),邻接矩阵的存储方式空间复杂度是N方,更适合存储稠密图,一般用得比较少。

2. 邻接表

说白了就是在每一个节点的位置开一个单链表,假设有n个节点,开一个数组h[n],h[i]是这个位置的单链表的头指针,单链表中存储的是 i 节点能走到的点,插入方式为在头节点处插入。

 

 

 

你可能感兴趣的:(树和图的存储,邻接表)