#include<stdio.h>
#include<stdlib.h>
#define max 1024
typedef struct Bitnode{ int data; struct Bitnode *lchild,*rchild;}Bitnode,*Bitree;
typedef struct squeue{
int front;
int rear;
Bitree Data[max];
}squeue;
void Initqueue(squeue *q)
{
q=(squeue *)malloc(sizeof(squeue)); q->front=q->rear=-1;
}
bool emptyqueue(squeue q)
{
if(q.front==q.rear) return true;
else return false;
}
bool enqueue(squeue * q,Bitree t)
{
if(q->rear==max-1) return false;
q->rear++;
q->Data[q->rear]=t;
return true;
}
bool dequeue(squeue *q,Bitree t)
{
if(q->front==q->rear) return false;
q->front++;
t=q->Data[q->front];
return true;
}
void CreateTree(Bitree *t)
{
int e; scanf("%d",&e);
if(e==-1) *t=NULL;
else { *t=(Bitree)malloc(sizeof(Bitnode)); (*t)->data=https://bbs.csdn.net/topics/e;
CreateTree(&((*t)->lchild)); CreateTree(&((*t)->rchild));
}
}void LevelOrder(Bitnode *t)
{ squeue *q;
Initqueue(q);
if(t!=NULL) enqueue(q,t);
while(!emptyqueue(*q)) {
dequeue(q,t);
printf("%d",t->data);
if(t->lchild!=NULL) enqueue(q,t->lchild);
if(t->rchild!=NULL) enqueue(q,t->rchild);
}
}void main()
{
Bitree root;
CreateTree(&root);
printf("\n");
LevelOrder(root);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/249591.html
標籤:C語言
