65,210
社区成员
发帖
与我相关
我的任务
分享
struct node
{
int data;
struct node *lchild,*rchild;
};//定义结点信息
node *CreatTree()
{
struct node *head=NULL;
struct node *newhead=NULL;
int *p=NULL;
int i=0;
int n=0;
cout<<"please input how many son do you want to creat:";
cin>>n;
p=new int(n);
loop_1:
{
struct node *newnode;
newnode=new node;
cout<<"please input data to node:";
cin>>newnode->data;
newnode->lchild=NULL;
newnode->rchild=NULL;
if (newnode->data==10000)//如果输入的结果为10000,则退出树的创建。
{
goto loop_over;
}
if (head==NULL)
{
head=newnode;
newhead=head;
p[i]=head->data;
i++;//入栈
goto loop_1;
}
while (newnode->data==0)
{
i--;
if (i==-1)
{
goto loop_over;
}
newhead->data=p[i];//出栈
cout<<"please input data to node:";
cin>>newnode->data;
if (newnode->data!=0)
{
newhead->rchild=newnode;
p[i]=newnode->data;
i++;//入栈
newhead=newnode;
goto loop_1;
}
}
newhead->lchild=newnode;
p[i]=newnode->data;
i++;//入栈
newhead=newnode;
goto loop_1;
}
loop_over:
delete [] p;
return head;
}