思想:
层次遍历
一层一层从左往右遍历
辅助队列
首先根节点入队,如果队列非空,将第一个出队,访问当前结点,将左右孩子放入队尾
结构体定义
二叉树的
typedef struct BiTree{
char data;
struct BiTree *lchild,*rchild;
}BiTNode,*BiTree;
链式队列
typedef struct LinkNode{
BiTNode *data;
struct LinkNode *next;
}LinkNode;
typedef struct {
LinkNode *front,*rear;
}LinkQueue;
void level(BiTree T){
LinkQueue Q;
InitQueue(Q);
BiTree p;
EnQueue(Q,T);
while(!IsEmpty(Q)){
DeQueue(Q,p);
visit(p);
if(p->lchild!=null)
EnQueue(Q,p->lchild);
if(p->rchild!=null)
EnQueue(Q,p->rchild);
)
}
}