//====利用 "先进先出 "(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; //右子树入队
}
}
}
层次遍历二叉树
最新推荐文章于 2021-11-15 23:37:23 发布
