二叉树的层次遍历算法(C语言版)

借助队列来实现

void LevelOrder(BiTree *bt) {
    InitQueue(Q); //初始化一个队列Q
    BiTree *p; //p用来跟踪队头元素
    EnQueue(Q,bt); //根节点入队
    while(!IsEmpty(Q)) {
        DeQueue(Q,p);
        visit(p);
        if(p->lchild!=null) {
            EnQueue(Q,p->lchild);
        }
        if(p->rchild!=null) {
            EnQueue(Q,p->rchild);
        }
    ]
}

 

你可能感兴趣的:(数据结构与算法)