数据结构之图的存储

来源:互联网 发布:苹果软件开发教程 编辑:程序博客网 时间:2024/05/22 00:48

关于图这种数据结构的概念,请参考相关的教材

在存储图的过程中,我们需要关注三个要素,顶点、边、权值

常用的存储当时有两种,邻接矩阵、邻接表

邻接表

无权图的邻接矩阵


带权图的邻接矩阵


结论:

(1)、邻接矩阵的本质是把顶点间的关系转换成二维数组

(2)、无向图的邻接矩阵是一个对阵矩阵,因此在存储是可以采用稀疏矩阵的存储方法

(3)、对于无向图,邻接矩阵的第i行的非零元的个数正好是这个节点的度,非零元的个数为图中边的数目的2倍

(4)、对于有向图,邻接矩阵的第i行的非零元的个数是这个节点的出度,邻接矩阵的第i列的非零元的个数是这个节点的入度,非零元的个数为图中边的数目

邻接表

当图中仅有少量的边时,邻接矩阵表现为稀疏矩阵,此时考虑使用行链表存储图


这个结构很像数据结构中的哈希表,这张表十分清晰的表示了邻接表的存储的方式,这里不再赘述

和常见的数据结构一样,图也有增、删、改、查等操作

但对图的操作包括对节点和边的操作,随后给出这些操作的代码

0 0
原创粉丝点击