二叉树——按层次顺序遍历(队列实现)

通过队列就可以方便的将同一层的节点连续地存放在一起

static LinkQueue Q ;     //定义一个队列
void levelTraverse(BiTree T){
    BiTree e;
    if(T){
        EnQueue(Q,T);      //入队列
        while(Q.front != Q.rear){
            DeQueue(Q,e);   //出队列
            cout << e->data<<" ";
            if(e->lchild) EnQueue(Q,e->lchild);
            if(e->rchild) EnQueue(Q,e->rchild);
        }
    }
}

 

上一篇:排序二叉树删除节点、二叉树后序、先序非递归遍历


下一篇:C++ 二叉树的先序,中序,后序遍历-递归与非递归方式