void LevelOrder(BiTree bt) |
/*层次遍历二叉树bt*/ |
/*所谓二叉树的层次遍历,是指从二叉树的第一层(根结点)开始,从上至下逐层遍历,在同一层中,则按从左到右的顺序对结点逐个访问。*/ |
{ BiTree Queue[MAXNODE]; |
int front,rear; |
if ( bt==NULL ) return ; |
front=-1; |
rear=0; |
queue[rear]=bt; |
while ( front!=rear ) |
{ |
front++; |
Visite ( queue[front]->data ); /*访问队首结点的数据域*/ |
if ( queue[front]->lchild!=NULL ) /*将队首结点的左孩子结点入队列*/ |
{ |
rear++; |
queue[rear]=queue[front]->lchild; |
} |
if ( queue[front]->rchild!=NULL ) /*将队首结点的右孩子结点入队列*/ |
{ |
rear++; |
queue[rear]=queue[front]->rchild; |
} |
} |
} |