二叉树的层次遍历

//二叉树的层次遍历
void level(BTnode *p){
    int front,rear;
    BTnode *que[maxSize];  //定义一个循环队列,用来记录要访问层次上的结点
    front=rear=0;
    BTnode *q;
    if(!p){
        rear=(rear+1)%maxSize;
        que[rear]=p;
        while(front!=rear){
            front=(front+1)%maxSize;
            q=que[front];   //队头结点出队
            Visit(q);  //访问队头结点

            if(q->lchild!=NULL){
                rear=(rear+1)%maxSize;
                que[rear]=q->lchild;
            }
            if(q->rchild!=NULL){
                rear=(rear+1)%maxSize;
                que[rear]=q->rchild;
            }
        }
    }
}

你可能感兴趣的:(二叉树的层次遍历)