0001 template <typename T> template <typename VST> //元素类型、操作器 0002 void BinNode<T>::travLevel ( VST& visit ) { //二叉树层次遍历算法 0003 Queue<BinNodePosi(T)> Q; //辅助队列 0004 Q.enqueue ( this ); //根节点入队 0005 while ( !Q.empty() ) { //在队列再次变空之前,反复迭代 0006 BinNodePosi(T) x = Q.dequeue(); visit ( x->data ); //取出队首节点并访问之 0007 if ( HasLChild ( *x ) ) Q.enqueue ( x->lc ); //左孩子入队 0008 if ( HasRChild ( *x ) ) Q.enqueue ( x->rc ); //右孩子入队 0009 } 0010 }