#define NoInfo 0/*结点本身信息为NoInfo,则表示该结点不存在*/
BinTree CreateBinTree()
{
int data;
BinTree BT, T;
Queue Q = CreatQueue();
scanf("%d", &data);
if(data != NoInfo){
BT = (BinTree)malloc(sizeof(struct TNode));
BT->data = data;
BT->left = BT->right = NULL;
Add(Q, BT);
}else{
return NULL;
}
while(!IsEmpty(Q)){
T = Delete(Q);//让队首结点出队,即读出队首结点的地址
scanf("%d", &data);//读入T结点左儿子的信息
if(data == NoInfo){//无左儿子
T->left = NULL;
}else{
T->left = (BinTree)malloc(sizeof(struct TNode));
T->left->data = data;
T->left->left = T->left->right = NULL;
Add(Q, T->left);
}
scanf("%d", &data);//读入T结点右儿子信息
if(data == NoInfo){
T->right = NULL;
}else{
T->right = (BinTree)malloc(sizeof(struct TNode));
T->right->data = data;
T->right->left = T->right->right = NULL;
Add(Q, T->right);
}
}
return BT;
}
层序创建二叉树
最新推荐文章于 2023-08-08 14:23:15 发布