图的基本概念
TODO
图的表示
邻接矩阵
无向图
class Graph {
public:
int numV; // 顶点数量
vector<vector<int>> mtr; // 邻接列表
Graph(int numV) {
this->numV = numV;
this->mtr = vector<vector<int>>(numV, vector<int>(numV));
}
void addEdge(int s, int t) {
this->mtr[s][t] = this->mtr[t][s] = 1; // 可以换成实际的权值
}
};
有向图
class Graph {
public:
int numV; // 顶点数量
vector<vector<int>> mtr; // 邻接列表
Graph(int numV) {
this->numV = numV;
this->mtr = vector<vector<int>>(numV, vector<int>(numV));
}
void addEdge(int s, int t) {
this->mtr[s][t] = 1; // 可以换成实际的权值
}
};
邻接列表
无向图
class Graph {
public:
int numV; // 顶点数量
vector<vector<int>> adj; // 邻接列表
Graph(int numV) {
this->numV = numV;
this->adj = vector<vector<int>>(numV, vector<int>());
}
void addEdge(int s, int t) {
this->adj[s].push_back(t);
this->adj[t].push_back(s);
}
};
有向图
class DiGraph {
public:
int numV; // 顶点数量
vector<vector<int>> adj; // 邻接列表
DiGraph(int numV) {
this->numV = numV;
this->adj = vector<vector<int>>(numV, vector<int>());
}
void addEdge(int s, int t) {
this->adj[s].push_back(t);
}
};