数据结构(10)图的概念、存储
创始人
2024-03-17 10:49:59
0

目录

10.1.概念

10.2.存储

10.2.1.邻接矩阵

10.2.2.邻接表


10.1.概念

定义:

图,用来表示多对多的关系,比如地图里城市之间的通路、比如人际关系。

图由顶点和边组成,顶点是图里的每个结点,边是顶点之间的通路,可以一条边都没有,但是不能一个顶点都没有。

分类:

图按照边分,可分为两种:

  • 有向图,边是有方向的,A—>B表示A可以到B,B不能到A。
  • 无向图,边是无方向的,A—B表示A可以到B,B也可以到A。

图按照点与边的数量,可分为两种:

  • 稀疏图,点多边少
  • 稠密图,点少边多
  • 完全图,特殊的稠密图,每个顶点间都有边相连。

符号表示:

顶点集合

V
边的集合E

无向边

(V,W),表示V,W双向连通

有向边

,表示V—>W。

10.2.存储

图有两种存储方式:

  • 邻接矩阵
  • 邻接表

10.2.1.邻接矩阵

邻接矩阵,用一个二维的数组表示图。

G[i][j]=1,表示V(i)、V(j)之间有一条边。

G[i][j]=0,表示V(i)、V(j)之间没有边。

以一个无向的稀疏图的存储为例:

ABCDE
A01001
B10110
C01010
D01101
E10010

可以看到用邻接矩阵存放点多边少的图,会存在大量记录都是0,没有任何意义,浪费了大量内存,因此,邻接矩阵适合存放稠密图(尤其是完全图)、不适合存放稀疏图(会有大量内存被浪费)。

10.2.2.邻接表

邻接表,用一组链表来表示图,每一条链表表示某个顶点和其他顶点的连同关系。

以一个稠密的无向图的存储为例:

 可以看到邻接表里单个结点间的连接关系被多次重复描述也浪费了不必要的内存,因此,邻接矩阵适合存放稀疏图、不适合存放稠密图。

相关内容

热门资讯

不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
报告实验.pdfbase.tt... 这个错误通常是由于找不到字体文件或者文件路径不正确导致的。以下是一些解决方法:确认字体文件是否存在:...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...