1. 为什么计算机网络是图?
1.1 从现实网络到抽象图
计算机网络本质上就是一个**图(Graph)**结构。让我们来看看如何对应:
对应关系:
| 网络概念 | 图论概念 | 说明 |
|---|---|---|
| 路由器、交换机 | 节点(Vertex) | 网络设备 |
| 物理链路、逻辑连接 | 边(Edge) | 设备间的连接 |
| 延迟、带宽、成本 | 权重(Weight) | 边的属性 |
1.2 实际案例:互联网拓扑
北京核心节点 / | \
/ | \ 上海 广州 成都
/ | \ / \ / |
南京 杭州...深圳... 重庆 昆明
这就是一个典型的有向加权图:
- 节点:各个城市的网络节点
- 边:城市间的网络链路
- 权重:链路延迟、带宽成本等
1.3 网络问题 = 图问题
| 网络问题 | 图论问题 | 对应算法 |
|---|---|---|
| 最优路由选择 | 最短路径 | Dijkstra、A*、Bellman-Ford、Floyd-Warshall |
| 网络拓扑设计 | 最小生成树 | Prim、Kruskal |
| 网络发现 | 图遍历 | BFS、DFS |
| 带宽优化 | 最大流 | Ford-Fulkerson |
2. 图的基本概念回顾
2.1 图的定义
图(Graph) 由两部分组成:
- 顶点集 V(Vertex):所有节点的集合
- 边集 E(Edge):所有边的集合
# 图的 Python 表示
graph = {
'V': {0, 1, 2, 3}, # 顶点集
'E': [(0, 1), (0, 2), (1, ), (, )]
}

