树的结构体定义
typedef struct BiTNode
{
TElemType data;
struct BiTNode *left;
struct BiTNode *right;
}BiTNode,*BiTree;
链队列的结构体定义
typedef struct QNode
{
QElemType data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct LinkQueue
{
QueuePtr front;
QueuePtr rail;
}LinkQueue;
相关声明
typedef int TElemType;
#define Nil 0
typedef BiTree* QElemType;
层序创建二叉树代码:
void LevelOrderCreate(BiTree *T)
{
BiTree *s=T;
TElemType c;
LinkQueue Q;
InitQueue(&Q);
EnQueue(&Q, s);
while (!EmptyQueue(Q))
{
DeQueue(&Q, &s);
scanf("%d", &c);
if (Nil == c)
{
*s = NULL;
continue;
}
(*s) = (BiTree)malloc(sizeof(BiTNode));
(*s)->data = c;
if (*s)
{
EnQueue(&Q, &(*s)->left);
EnQueue(&Q, &(*s)->right);
}
}
}