实现
1
2
3
4
5
6
7
8
9
10
11
template <typename T, typename VST>
void BinNode<T>::travLevel(VST &visit) { // 二叉树层次遍历
Queue<BinNodePosi(T)> Q; // 引入辅助队列
Q.enqueue(this); // 根节点入队
while (!Queue.empty()) { // 队列变空之前,反复迭代
BinNodePosi(T) x = Q.dequeue(); // 取出队首节点,并随即
visit(x -> data); // 访问之
if (HasLChild(*x)) Q.enqueue(x -> lChild); // 左孩子入队
if (HasRChild(*x)) Q.enqueue(x -> rChild); // 右孩子入队
}
}
实例
本文由
Oscaner
创作, 采用
知识共享署名4.0
国际许可协议进行许可
本站文章除注明转载/出处外, 均为本站原创或翻译, 转载前请务必署名