前言
1.图的存储方式其实有很多,我们也可以根据自己的需求选择一种合适的存储方式,一般的存储方式有,邻接矩阵,邻接表,十字链表,邻接多重表等。
本章主要介绍邻接矩阵和邻接表
对于十字链表,邻接多重表,只是对于邻接矩阵和邻接表延伸。
1.邻接矩阵
邻接矩阵内部采用数组进行存储。适合存储稠密图
如图所示,右侧是使用邻接矩阵的结果
我们会发现,无向图的边之间是对称关系。对角线为0
2.邻接表
1.对于邻接矩阵来讲,稀疏图就显得没有优势了。如果一个图中多个顶点并没有联系,这个时候我们可以采取邻接表存储。
邻接表是采用数组和链表联合一起进行存储。
图中顶点采用一维数组进行存储,顶点也是可以采用链表进行存储,只是在数组中,读取顶点信息更加方便。
图中每个顶点Vi的所有邻接点构成一个线性表,有与邻接点的个数不确定,所以我们采用单链表存储。