C++ 数据结构(五)二叉树(7)层次遍历
     发布在:C/C++      浏览:46      评论:0 条评论

上一篇:《C++ 数据结构(五)二叉树(6)中序遍历》

实现

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); // 右孩子入队
    }
}

实例

C++ 数据结构(五)二叉树(7)层次遍历

下一篇:《C++ 数据结构(六)图(1)概述》

Responses