### 图的简介:
1. **图 vs. 线性表 & 树**:
- **线性表**:数据元素间仅有线性关系;每元素有一个直接前驱和后继。
- **树**:数据元素间有层次关系;每层的元素与下一层多个元素(孩子)关联,与上一层一个元素(双亲)关联。
- **图**:节点间的关系是任意的,任意两节点都可能关联。
2. **图的应用**:
- 广泛应用于物理、化学、通信、计算机、数学等领域。
### 图论:
- **定义**:离散数学的一个分支,专研图的性质。
- **在数据结构中的作用**:应用图论知识讨论如何在计算机上实现图的操作。
### 本章内容:
- 主要讨论图的存储结构。
- 探讨若干图的操作的实现。
以下是针对内容6.1的笔记整理:
### 6.1 图的定义与基本术语
#### 6.1.1 图的定义
- **图(Graph) G**:由两个集合 V 和 E 组成。
- **标记方式**:G = (V, E)
- **V**: 顶点的有穷非空集合。
- **E**: 顶点偶对的有穷集合称为边。
- V(G) 表示图 G 的顶点集合。
- E(G) 表示图 G 的边集合。
- E(G) 可以为空,此时图 G 只有顶点,没有边。
- **有向图 vs. 无向图**:
- **有向图**:若边集 E(G) 为有向边的集合。
- 顶点对
-
- x 是始点,y 是终点。
- 也称作弧,其中 x 是弧头,y 是弧尾。
- **无向图**:若边集 E(G) 为无向边的集合。
- 顶点对 (x, y) 是无序的,表示与 x 和 y 关联的边。
- (x, y) 与 (y, x) 是同一条边。
- **示例图 6.1**:
- 展示了有向图和无向图的样式。
1. **子图**:
- 定义: 如果图 \( G'=(V',E') \) 的所有顶点和边都分别属于图 \( G=(V,E) \),则称 \( G' \) 为 \( G \) 的子图。
- 示例: 图6.2展示了图6.1中的 ( G₁ ) 和 ( G₂ ) 的子图。
2. **完全图**:
- **无向完全图**: 具有 n(n-1)/2 条边的无向图。
- **有向完全图**: 具有 n(n-1) 条弧的有向图。
3. **稀疏图与稠密图**:
- **稀疏图**: 边数的图。
- **稠密图**: 与稀疏图相反的图。
4. **权和网**:
- **权**: 边或弧上具有某种含义的数值。
- **网**: 带权值的图。
5. **邻接点**:
- 对于无向图 \( G \),若边 \( (v,v') \) 属于 \( E \),则称顶点 \( v \) 和 \( v' \) 为邻接点。
6. **度、入度和出度**:
- **度(TD(v))**: 与顶点 \( v \) 相关联的边或弧的数目。
- **入度(ID(v))**: 有向图中,以顶点 \( v \) 为头的弧的数目。
- **出度(OD(v))**: 有向图中,以顶点 \( v \) 为尾的弧的数目。
- 关系:
7. **路径和路径长度**:
- 定义: 从顶点 \( v \) 到 \( v' \) 的顶点序列。路径长度是路径上的边或弧的数目。
8. **回路或环**:
- 定义: 路径中第一个顶点和最后一个顶点相同。
9. **简单路径、简单回路或简单环**:
- **简单路径**: 顶点不重复的路径。
- **简单回路或简单环**: 除首尾顶点外,无重复顶点的回路。
10. **连通、连通图和连通分量**:
- **连通**: 若两顶点之间存在路径,称这两顶点连通。
- **连通图**: 任意两顶点都连通的图。
- **连通分量**: 无向图中的极大连通子图。
11. **强连通图和强连通分量**:
- **强连通图**: 有向图中,任意两顶点都存在双向路径。
- **强连通分量**: 有向图中的极大强连通子图。
12. **连通图的生成树**:
- 定义: 一个连通图的极小连通子图,包含所有顶点和足够的边形成一棵树。
13. **有向树和生成森林**:
- **有向树**: 有一个顶点的入度为0,其他顶点的入度均为1的有向图。
- **生成森林**: 由若干棵有向树组成的图,包含所有顶点。
**图的定义与基本术语重点、难点和易错点总结:**
### 重点:
1. **图的定义**:
- **顶点集合(V)** 和 **边集合(E)**
2. **子图与完全图**:
- 子图:一个图的部分顶点和部分边组成的图。
- 完全图:无向图中,任意两点都有边相连。
3. **度、入度和出度**:
- 度是一个顶点相关联的边的数目。在有向图中,入度是指向一个点的边数,而出度是从一个点出发的边数。
4. **连通与强连通**:
- 连通:无向图中,任意两顶点间至少存在一条路径。
- 强连通:有向图中,任意两顶点间都存在双向路径。
### 难点:
1. **权和网**:
- 带权的图与不带权的图有不同的应用和处理方式。理解权值的含义和应用在实际问题中的重要性是一个挑战。
2. **连通分量与强连通分量**:
- 在图中找出所有连通分量或强连通分量需要理解和应用特定的算法。
3. **生成树与生成森林**:
- 理解什么是生成树、为何它是连通的、为何其边数是 n-1 是关键。生成森林是一组生成树,可能涉及到不连通的图。
### 易错点:
1. **混淆度、入度和出度**:
- 在有向图中,常常混淆顶点的入度和出度。要明确区分哪些边是指向该点的,哪些边是从该点出发的。
2. **完全图的边数计算**:
- 无向完全图和有向完全图的边数计算不同,易混淆。无向完全图的边数为 \( n(n-1)/2 \),有向完全图为 \( n(n-1) \)。
3. **连通与强连通的区别**:
- 在有向图中,连通与强连通是不同的概念。只因为两顶点间存在路径,并不意味着它们强连通。强连通需要双向路径。
4. **混淆子图与生成树**:
- 虽然生成树是图的子图,但不是所有子图都是生成树。生成树有特定的属性,如包含所有顶点,边数为 n-1 等。
通过对这些重点、难点和易错点的理解和注意,可以更好地掌握图论的基本概念和应用。