层次遍历二叉树

来源:互联网 发布:vb.net 教程 编辑:程序博客网 时间:2024/04/30 05:31

//====利用 "先进先出 "(FIFO)队列,按层次遍历二叉树========== 
void   Levelorder(BinTree   T) 
{ 
        int   front=0,rear=1; 
        BinTNode   *cq[Max],*p;       //定义结点的指针数组cq 
        cq[1]=T;                                 //根入队 
        while(front!=rear)             
        { 
front=(front+1)%NodeNum;//NodeNum为结点总数 
p=cq[front];                         //出队 
printf( "%c ",p-> data);           //出队,输出结点的值   
if(p-> lchild!=NULL) 
{ 
          rear=(rear+1)%NodeNum; 
        cq[rear]=p-> lchild;           //左子树入队 
} 
if(p-> rchild!=NULL) 
{ 
        rear=(rear+1)%NodeNum; 
        cq[rear]=p-> rchild;           //右子树入队 
} 
        } 
}

原创粉丝点击