24 二叉树的层次遍历

//二叉树层次遍历
//类型定义
typedef struct{
    BTNode data[MaxSize];       //存放队列中元素(元素为BTNode类型)
    int head, rear;     //分别指向队头元素和队尾元素的下一个元素
}SqQueue;       //顺序循环队列类型
View Code
//二叉树层次遍历算法
void LevelOrder(BTNode *b){
    BTNode *p;      //定义二叉树节点游标
    SqQueue *qu;
    InitQueue(qu);      //初始化队列
    InQueue(qu, b);     //根节点进入队列
    while(!QueueEmpty(qu)){     //队列不为空,则循环
        OutQueue(qu, p);        //出队列节点
        printf("%c", p->data);      //打印节点数据域
        if(p->lchild != NULL){      //有左孩子时将其入队
            InQueue(qu, p->lchild);
        }
        if(p->rchild != NULL){      //有右孩子时将其入队
            InQueue(qu, p->rchild);
        }
    }
}
View Code
原文地址:https://www.cnblogs.com/CPU-Easy/p/11869930.html