一.邻接矩阵
G[i][j] = 点 i 与点 j 之间的边的权值(或由 0/1 表示是否存在);
适用于顶点数目不太大(<=1000)的图;
二.邻接表
Adj[i] 存放顶点 i 的所有出边组成的列表,储存边的终点编号和边权;
如何实现:
1.链表;
2.vector:
示例一:
vector<int> Adj[N];
Adj[1].push_back(3);
示例二:
struct Node {
int v; // 终点编号
int w; //边权
};
vector<Node> Adj[N];
Node temp;
temp.v = 3;
temp.w = 4;
Adj[1].push_back(temp);
示例三:
struct Node {
int v, w;
Node(int _v, int _w) : v(_v), w(_w) {} //构造函数
};
Adj[1].push_back(Node(3, 4));