图和树的存储方式:邻接矩阵和邻接表

您所在的位置:网站首页 如何实现图的邻接矩阵存储 图和树的存储方式:邻接矩阵和邻接表

图和树的存储方式:邻接矩阵和邻接表

2024-07-13 20:53| 来源: 网络整理| 查看: 265

邻接矩阵和邻接表 摘要无向图和有向图的区别稀疏图和稠密图邻接矩阵邻接矩阵的初始化邻接矩阵的读入 邻接表邻接表的实现

基础算法和数据结构合集: https://blog.csdn.net/GD_ONE/article/details/104061907

摘要

本文主要介绍邻接矩阵和邻接表的实现方式,无向图和有向图的区别,以及稠密图和稀疏图的区别。以及两种存储方式的使用场景。 稠密图使用邻接矩阵存储,稀疏图使用邻接表存储

无向图和有向图的区别

无向图是特殊的有向图, 无向图就是两个点只要有边,就可以互相到达,所以建无向图的时候就把它当成两点之间有来去两条边的有向图。

稀疏图和稠密图

稀疏图一般指的是一个图中点数和边数是同一数量级的,比如点数是1000,边数也是1000左右的,而稠密图一般指边数是点数的平方,比如点数是100,而边数是10000。

邻接矩阵

邻接矩阵虽然听着很厉害,很深奥,但是其实呢,就是一个二维数组。所以当稀疏图的点数很大时,就不能用二维数组来存了。

假设一个有向图为: 在这里插入图片描述 那么邻接矩阵D表示为: 在这里插入图片描述 其中,INF表示正无穷,即该点和另一个点之间没有边相连。 所以D[i][j]就是i号点到j号点之间边的长度

邻接矩阵的初始化

因为自己到自己的距离是0,并且如果两点之间没有边相连要设为INF,所以要先将这两种情况给初始化。

假设有一共有n个点,设邻接矩阵为D 代码:

for(int i = 1; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3