一、图的基本定义
什么是图?
图(Graph) 是由 顶点(Vertex)集合 V 和 边(Edge)集合 E 组成的一种非线性数据结构。
- 若边有方向 → 有向图
- 若边无方向 → 无向图
- 边有权重 → 带权图(网)
基本术语
| 术语 | 说明 |
|---|---|
| 度 | 顶点的边数;有向图中分为入度和出度 |
| 路径 | 从一个顶点到另一个顶点的顶点序列 |
| 连通图 | 任意两点间都有路径(无向图) |
| 强连通图 | 任意两点间都有双向路径(有向图) |
考点:判断图的类型、计算度数、找路径长度
二、图的存储结构
1. 邻接矩阵法(Adjacency Matrix)
- 用二维数组表示顶点间的连接关系
matrix[i][j] = 1表示存在边,否则为 0(或无穷大表示无边)
优点:
- 简单直观,便于判断任意两点是否相连
- 适合稠密图
缺点:
- 空间复杂度 O(n^2),稀疏图浪费严重
- 修改边操作较慢
存储结构:

#define MaxVertexNum 100 // 顶点数目的最大值
typedef char VertexType; // 顶点对应的数据类型
typedef int EdgeType; // 边对应的数据类型
typedef struct {
VertexType vex[MaxVertexNum]; // 顶点表
EdgeType edge[MaxVertexNum][MaxVertexNum]; // 邻接矩阵,边表
vexnum, arcnum;
} MGraph;



















