
又仔细看了原题,就算这样写可行,实际中看的人也太费解
觉得楼主的一开始的定义好像不太符合常规(不是不对)
天啊,楼上的楼上创建的那是"二叉排序树"吗?普通的树我会发个贴吗
,5分钟我就可以写一个普通二叉树或用两个参数作为函数的参数创建二叉排序树(决不是自大)
现在我想用一个参数创建二叉排序树,参数只有一个根;
我的意思是main()函数中只定义两个函数,一个创建函数,另一个打印函数,创建函数以根作为参数.将创建的过程留给创建函数,而不在主函数中输入要创建的值,值在创建函数中输入
#include<stdlib.h>
#include<iostream.h>
typedef struct btnode{
char v;
struct btnode *lchild,*rchild;
}BTnode;
BTnode * creat()
{
int i,j;
char x;
BTnode *head=NULL,*p,*sex[31];
cout<<"请输入二叉树的元素结点"<<endl;
cout<<"i=,x=";
cin>>i>>x;
while(i!=0&&x!='$')
{
p=(BTnode *)malloc(sizeof(BTnode));
p->v=x;p->lchild=NULL;p->rchild=NULL;
sex[i]=p;
if(i==1)
head=p;
else
{
j=i/2;
if(i%2==0)
sex[j]->lchild=p;
else
sex[j]->rchild=p;
}
cout<<"i=,x=";
cin>>i>>x;
}
return head;
}
我也看到现在也没弄明白他到底要什么...