1.层次遍历算法
思想:层次遍历需要借助一个队列。先将二叉树的根节点入队,然后出队,访问出队结点,如果它有左子树,则将它的左子树根节点入队;若它有右子树,则将右子树根结点入队。然后出队访问出队节点如此往复,直到队列为空。
void LevelOrder(BiTree T){
LinkQueue Q;
InitQueue(Q);//初始化辅助队列
BiTree p;
EnQueue(Q,T);//将根结点入队
whlie(!IsEmpty(Q)){
//队列不空则循环
DeQueue(Q,p);//队头结点出队
visit(p);//访问出队节点
if(p->lchild!=NULL)
EnQueue(Q,p->lchild);//左孩子入队
if(p->rchild