前言
有了图的存储结构以后,就要考虑解决图的相关问题。关于图的算法有很多,比如最小生成树、最短路径、拓扑排序等。这些算法以后有空补上,现在主要记录图的遍历算法。
在介绍前,先给出图的结构代码。这里用的是邻接表法对图进行存储的,邻接表用的是可变数组vector来实现的:
class Graph {
public: //成员变量设为public是为了方便演示
int n;
vector<int> *edges;
public:
Graph(int input_n) {
n = input_n;
edges = new vector<int>[n];
}
~Graph() {
delete[] edges;
}
void insert(int x, int y) {
edges[x].push_back(y);
edges[y].push_back