算法思想:借助一个队列,将二叉树根结点入队然后出队访问根结点,若果它有左子树,则左子树的根结点入队,若它有右子树则右子树的根结点入队。依次循环直到队列为空时跳出循环。
代码实现:
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);//右子树根结点入队
}
}