什么是图

什么是图

0x00 什么是图

​ 图表示多对多关系

​ 包含 一组顶点 通常用V(vertex)表示顶点集合

​ 一组边 通常用E(Edge) 表示边的集合

​ 边是顶点对:(v,w)∈E

​ 有向边<v,w>表示从v指向w的边

​ 不考虑重边和自回路

​ 以下图片可以帮助理解图:

QQ截图20200206173231

QQ截图20200206173246

QQ截图20200206173303

0x01 抽象数据类型定义

QQ截图20200206173440

0x02 怎么在程序中表示一张图

邻接矩阵

QQ截图20200206173600

可以看到 该矩阵是关于红线对称的,如果是有向图,那么该对称有意义,无向图则无意义,可以省略一半的空间

QQ截图20200206173738

邻接矩阵的优缺点

QQ截图20200206173834

QQ截图20200206173841

另一种则是邻接表

​ 由于邻接表需要指针域,所以元素越多则占用空间越大。

QQ截图20200206173943

QQ截图20200206174058