定义
图 (Graph) 是由顶点的有穷非空集合和顶点之间边的集合组成,结点之间存在多对多的关系。通常表示为:G ( V, E )。其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。
简单图:不存在顶点到其自身的边,且同一条边不重复出现。
完全图:任意两个顶点之间都存在边。有向图中,要求两个顶点存在互相指向的边。
有向图:两顶点间的边有方向,用<>表示。
无向图:两顶点间的边无方向,用()表示。
稀疏图:有很少条边或弧的图,反之称为稠密图。
网:边或弧具有与它相关的数字的图,数字即权重。
图与子图的关系,如下图所示。
路径:构成两点间通路的顶点序列,路径的长度是路径上的边或弧的数目。
环/回路:第一个顶点到最后一个顶点相同的路径。
连通图:图中任意两个结点都是连通的。
连通分量:无向图中的极大连通子图。
强连通分量:有向图中的极大强连通子图。
极小连通子图:连通图的生成树,它含有图中全部的n个顶点,但只有足以构成一棵树的 n-1 条边。非连通图的多棵生成树构成一个生成森林。
存储结构
邻接矩阵存储方式是用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组(称为邻接矩阵)存储图中的边或弧的信息。适用于稠密图。