为什么要有图?
- 我们之前学过线性表和树
- 线性表局限于一个直接前驱和一个直接后继的关系
- 树也只能有一个直接前驱也就是父节点
- 当我们需要表示多对多的关系时,这里我们用到了图
基本介绍
图是一种数据结构,其中结点可以具有零个或多个相邻的元素。两个结点之间的连接成为边。节点也可以称为顶点。如图:
![image-20220217111352062](https://gitee.com/pakeing/typora-img/raw/master/img/image-20220217111352062.png)
- 顶点
- 边
- 路径
- 无向图
- 有向图
- 带权图
图的表示方式
图的表示方式有两种:二维数组表示(邻接矩阵);链表表示(邻接表)
- 邻接矩阵是表示图形中顶点之间相邻关系的矩阵。
- 邻接表
-邻接矩阵需要每个顶点都分配n个边的空间,其实有很多边都是不存在,会造成空间的一定损失
-邻接表的实现只关心存在的边,不关心不存在的边,因此没有空间的浪费,邻接表由数组+链表组成