树与二叉树之层序遍历

层序遍历二叉树

从根节点开始,从左到右,从上到下,依次输出节点的值,先进先出的典型,创建队列,根节点入队,指针指向队列的第一个元素,输出,出队,若指针指向的(队列的第一个元素)的左子树不为空,则使他入队,同样判断右子树,循环直到队列为空。

队列的数据是指向节点的指针比较方便操作

typedef struct{
  BiTree * base;//存放指针比较方便
  int front;
  int rear;
}SqQueue;

void level_travel(BiTree T,SqQueue * Q){
   Enqueue(Q,T);
   BiTree e;
   int tag=0;
   while((*Q).front!=(*Q).rear){
         BiTree r = (*Q).base[(*Q).front];
         printf("%d ",(*r).data);
         DeQueue( Q, e);
         if((*r).lchild!=NULL)
             Enqueue(Q,(*r).lchild);
         if((*r).rchild!=NULL)
             Enqueue(Q,(*r).rchild);
   }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值