Home > Back-end >  This sequence traversal output, have a big help to have a look
This sequence traversal output, have a big help to have a look

Time:01-17

# include
# include
# define Max 1024
Typedef struct Bitnode {int data; Struct lchild Bitnode * and * rchild; } Bitnode, * Bitree;
Typedef struct squeue {
Int the 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.f ront==q.r ear) return true;
The else return false;
}
Bool the enqueue (squeue * q, Bitree t)
{
If (q -> rear==Max - 1) return false.
Q -> rear++;
Q -> Data [q -> rear]=t;
return true;
}
Bool to 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; The scanf (" % d ", & e);
If (e==1) * t=NULL;
The 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) the enqueue (q, t);
while(! Emptyqueue (* q)) {
Dequeue (q), t);
Printf (" % d ", t -> data);
If (t -> lchild!=NULL) the enqueue (q, t -> lchild);
If (t -> rchild!=NULL) the enqueue (q, t -> rchild);
}
} void main ()
{
Bitree root;
CreateTree (& root);
printf("\n");
LevelOrder (root);
}
  • Related