一般我们是用DFS的方式来遍历图,或者是树。这里我用一个二叉树来做例子。
DFS的顺序就是A->B->C->D->E->F->G,这是比较好理解的。那么在代码上我们该怎么解决。
我们来捋一捋,先是A,A的左右结点B和C。然后是B的左右结点,C的左右结点。这个顺序是不是符合先进先出,那我们就使用队列来做。
由于懒得写队列了,我就直接使用C++的Queue来写。
伪代码
queue<int> q;
while (!q.empty()) {
q.push(X);
q.pop();
}
这样就实现了二叉树的遍历。