二叉树层序遍历算法

算法思想:借助一个队列,将二叉树根结点入队然后出队访问根结点,若果它有左子树,则左子树的根结点入队,若它有右子树则右子树的根结点入队。依次循环直到队列为空时跳出循环。

代码实现:

void LeverOrder(BiTree T){

InitQueue(Q);//初始化辅助队列

BiTree p;//定义一个指向二叉树的指针

EnQueue(Q,s);//根结点入队

while(!IsEmpty Q){//如果队列非空

DeQueue(S,p);//队头结点出队

if(p->lchild!=NULL)//如果左子树不空

        EnQueue(Q,p->lchild);//左子树根结点入队

if(p->rchild!=NULL)//如果右子树非空

        EnQueue(Q,p->rchild);//右子树根结点入队

}

}

你可能感兴趣的:(知识总结,笔记,算法,数据结构)