(1)图由两个集合组成,G=(V,E),V是顶点的有限集合,E是边的有限集合。
(2)在无向图G=(V,E)中,集合E中的元素为无序对。
(3)在有向图G=(V,E)中,集合E中的元素为有序对。
(4)如果图中从顶点u到顶点v之间存在一条路径,则称u到v是连通的。
(5)如果无向图G中任意两个顶点都是连通的,称G为连通图。无向图G的极大连通子图称为G的连通分量。
(6)如果有向图G中任意两个顶点都是连通的,称G为强连通图。
(7)图的主要存储结构有邻接矩阵和邻接表。
(8)无向图的邻接矩阵一定是对称矩阵,但对称矩阵对应的图不一定是无向图。
(9)一个图的邻接矩阵是不对称的,则该图一定是有向图。
(10)若用邻接表存储图,图中的每个顶点v都对应一个单链表。对链表中每个结点存放的顶点u,u满足<v,u >∈E(G)或者(v,u)∈E(G)。
(11)对于连通图,从它的任一顶点出发进行一次深度优先遍历或深度优先遍历可访问到图的每个顶点。
(12)若一个无向图的以顶点v为源点的深度优先遍历序列唯一,则可唯一确定该图。
(13)图的深度优先遍历与二叉树的先序遍历类似。
(14)图的广度优先遍历与二叉树的层次遍历类似。
(15)如果树T是图G的一个子图,且V(T)=V(G),即G的所有顶点也都是T的顶点,则称T为G的生成树。
(16)一个带权无向图的最小生成树并非指边数最少的生成树,因为所有生成树的边数相同,而是指所有边权值之和最小的生成树。
(17)一个带权无向图的最小生成树不一定是唯一的,但最小生成树的所有边权值之和一定是唯一的。
(18)Prim算法用于构造带权无向图的最小生成树,需要给定一个起点,时间复杂度为O(n2),适合稠密图求最小生成树。
(19)Kruskal算法用于构造带权无向图的最小生成树,不需要给定起点,时间复杂度为O(elog2e),适合稀疏图求最小生成树。
(20)一个图的最短路径一定是简单路径。
(21)求单源最短路径的Dijkstra算法既适合于带权有向图,也适合于带权无向图。
(22)Dijkstra算法不适合含负权的图求最短路径。
(23)Floyd算法适合含负权的图求最短路径,但这样的图中不能出现权值和为负数的回路。
(24)一个有向图中如果存在回路,则不能进行拓扑排序,所以一个强连通图(其中有环)是不能进行拓扑排序的。
(25)如果一个有向图的拓扑序列是唯一的,则图中必定仅有一个顶点的入度为0,一个顶点的出度为0。
(26)一个AOE网中至少有一条关键路径,且是从源点到汇点的路径中最长的一条。
(27)一个AOE网的关键路径不一定是唯一的,但其关键路径长度一定是唯一的。