1.图的含义
数据结构:点、线性表、树、图
这些数据结构都是对问题的抽象,图是比较复杂的一种。
图用符号记为G(V,E), G表示图的最大集合,V是图中所有点的集合,E是边的集合。 G=graph, V=vertex , E=edge
例如,点表示人, 边映射人与人是否认识,这就是一张人际网图;
点表示网络设备,边映射连通的网线,这就是一张设备网络图
2.图的分类
图分为有向图和无向图。有向和无向是针对边的。
有向图的应用更广泛,因为无向图可以被表示为双向的有向图,所以图的算法经常采用有向图作为输入数据。
3.图的存储
3.1图链表
即用已有的线性表去表示图
假设一个图中有N个节点,那么可以用N个链表去表示,每个链表的开头是V集合中的一个节点,链表的后续内容就是与这个点有关联的点。
3.2图矩阵
用矩阵的方式去存储图
比较:图链表存储复杂度更低;图矩阵的方便之处是可以将图作为矩阵对待,线性代数可以派上用场。
4.基本概念
4.1顶点(vertex):表示某个事物或对象
4.2边(edge):表示事物与事物之间的关系
4.3同构(Isomorphism)
4.4有向图/无向图:每条边都是有向边/无向边的图
4.5权重:每条边都有预支对应的值
4.6路径/最短路径:在图上任取2点,分别作为起点和终点。起点和终点之间不重复经过同一个点或一条边的路线就是一条路径。两个顶点之间存在路径,则