0001 template <typename T, typename V> void levelorder(BNP<T> x, V& visit) { 0002 Queue<BNP<T>> Q; Q.enqueue(x); //引入辅助队列,根节点入队 0003 while (!Q.empty()) { //在队列再次变空之前,反复迭代 0004 x = Q.dequeue(); visit(x->data); //取出队首节点并访问之 0005 if (x->lc) Q.enqueue(x->lc); //左孩子入队 0006 if (x->rc) Q.enqueue(x->rc); //右孩子入队 0007 } 0008 } //levelorder