概念
·图是由一个顶点的集合和一个顶点间关系的集合组成(描述关系&编程实现的理论概念)
·图分有向图和无向图
·图中每个顶点都有度(有向图/无向图通用)、出度/入度(有向图专属)
·关于图的一笔画(“七桥问题”):
凡是由偶点组成的连通图,一定可以一笔画成。画时可以把任一偶点为起点,最后一定能以这个点为终点画完此图。
凡是只有两个奇点的连通图(其余都为偶点),一定可以一笔画成。画时必须把一个奇点为起点,另一个奇点终点。
其他情况的图都不能一笔画出。(奇点数除以二便可算出此图需几笔画成。)
·路径:将一个图中的某两个点通过其他点之间的联系连通的路线
·简单路径:如果一条路径上的结点除起点x1和终点xk相同(也可以不相同)外,其它结点均不相同,则称此路径为一条简单路径。
·x1=xk的简单路径称为回路(也称为环)
·连通:如果存在一条从顶点u到v有路径,则称u和v是连通的。
·连通图:图中任意的两个顶点u和v都是连通的,称为连通图。否则为非连通图。
·图还有带权图的概念。
编程实现
·图的存储结构:使用邻接矩阵O(n^2)/邻接表O(E)
·邻接矩阵:二维数组记录两下标为顶点之间连通与否的关系
·邻接表构造法:
1)设置结点指针
2)用数组模拟图
·邻接矩阵构造代码简单,邻接表强大。
·邻接矩阵与邻接表使用时,一般使用邻接矩阵(点数范围<=5000)超过该范围使用邻接表
·图的遍历
Floyd;
Dfs(深搜);(递归)
·邻接矩阵中注意要判断点之间的重边