《大话数据结构》笔记(7-1)--图:定义
第七章 图
图的定义
注:
1. 线性表中将数据元素称为元素,树中将数据元素称为结点,图中将数据元素称为顶点。
2. 线性表中可以没有数据元素,称为空表。
树中可以没有结点,称为空树。
在图结构中,不允许没有顶点。在定义中,顶点集合有穷非空。
3. 线性表中,相邻数据元素之间有线性关系。
树结构中,相邻两层结点之间有层次关系。
在图中,任意两个顶点之间都有可能有关系,顶点之间的逻辑关系有边来表示。边集可以为空。
各种图的相关概念
无向边:若顶点vi到vj之间的边没有方向,则称这条边为无向边(Edge),用无序偶对(vi , vj)来表示。
无向图:若图中任意两个顶点之间的边都是无向边,则称该图为无向图。
有向边:若从顶点vi到vj的边有方向,则称这条边为有向边,也称为弧(Arc),用有序偶对<vi , vj>来表示,vi 称为弧尾(Tail),vj 称为弧头(Head)。
有向图:若图中任意两个顶点之间的边都是有向边,则称该图为有向图。
简单图:在图中,若不存在顶点到其自身的边,且同一条边不重复出现,则称这样的图为简单图。
无向完全图:在无向图中,如果任意两个顶点之间都存在边,则称该图为无向完全图。
有向完全图:在有向图中,如果任意两个顶点之间都存在方向互为相反的两条弧,则称该图为有向完全图。
权:与图的边或弧相关的数叫做权(Weight)。
网:带权的图称为网(Network)。
子图:子图(Subgraph)。
图的顶点与边间关系
邻接点:对于无向图G=(V, E),如果边 (v,v')∈E,则称顶点 v 和 v' 互为邻接点(Adjacent),即 v 和 v' 相邻接。
边 (v,v') 依附于顶点 v 和 v' ,或者说 v 和 v' 相关联。
顶点 v 的度(Degree)是和 v 相关联的边的数目,记为TD(v)。
无向图的边数为各顶点度数和的一半。
弧 <v,v'> 和顶点 v , v' 相关联。
以顶点 v 为头的弧的数目称为 v 的入度(InDegree),记为ID(v);
以 v 为尾的弧的数目称为 v 的出度(OutDegree),记为OD(v);
顶点 v 的度为TD(v) = ID(v) + OD(v).
路径:图G=(V, E) 中从顶点 v 到 顶点 v' 的路径(Path)是一个顶点序列。如果G是有向图,则路径也是有向的。
路径的长度是路径上的边或弧的数目。
回路 / 环:第一个顶点到最后一个顶点相同的路径称为回路或环(Cycle)。
简单路径:序列中顶点不重复出现的路径称为简单路径。
简单回路 / 简单环:除了第一个顶点和最后一个顶点之外,其余顶点不重复出现的回路,称为简单回路或简单环。
连通图相关术语
在无向图G中,如果从顶点 v 到顶点 v' 有路径,则称 v 和 v' 是连通的。如果对于图中任意两个顶点都是相通的,则称G是连通图(Connected Graph)。
无向图中的极大连通子图称为连通分量。连通分量的概念强调:
1. 要是子图;
2. 子图要是连通的;
3. 含有极大顶点数;
4. 具有极大顶点数的连通子图包含依附于这些顶点的所有边。
在有向图中,如果对于每一对 vi , vj ∈V,vi ≠ vj,从 vi 到 vj 和从 vj 到 vi 都存在路径,则称G是强连通图。
有向图中的极大强连通子图称作有向图的强联通分量。
连通图的生成树:是一个极小的连通子图,它含有图中全部的 n 个顶点,但只有足以构成一棵树的 n-1 条边。
有向树:如果一个有向图恰有一个顶点的入度为0,其余顶点的入度均为1,则是一棵有向树。
有向图的生成森林:由若干棵有向树组成,含有图中全部顶点,但只有足以构成若干棵不相交的有向树的弧。
总结
图的抽象数据类型