图的存储结构
1. 邻接矩阵
用两个数组表示图,一个一位数组存储图中顶点信息,一个二维数组(邻接矩阵)存储图中边或弧的信息
无向图
有向图
有向网图(带权值)
2. 邻接表
(边数相对顶点较少的图,用邻接矩阵浪费存储空间 联想:顺序存储结构因预先分配内存造成空间浪费,引出链式存储)
邻接表:数组与链表相结合的存储方法
无向图
有向图
以顶点为弧尾来存储边表(易得每个顶点的出度)
逆邻接表(以顶点为弧头来存储边表)
有向带权值网图
增加一个weight的数据域,存储权值信息
3. 十字链表
整合邻接表和逆邻接表,易找出以vi为尾的弧和以vi为头的弧
4. 邻接多重表
同一条边,在邻接表中用两个结点表示,而在邻接多重表中只用一个结点
5. 边集数组
有两个数组构成,一个存储顶点信息,另一个存储边的信息。
适合对边依次进行处理的操作