标签:blog ar sp 数据 div 2014 问题 log bs
Node* BuildTree(int m){//这是错误的二叉树建立方法//空的情况不能判断
if(m > n) return NULL;
printf("请输入%d/%d号结点的值:",m,n);
Node *node = (Node*)malloc(sizeof(Node));
int v;
scanf("%d",&v);
node -> value = v;
node -> left = BuildTree(m * 2);
node -> right = BuildTree(m * 2 + 1);
return node;
}
我觉得这个二叉树有问题,只能处理比较完整的二叉树,一旦二叉树中有一些空的节点时,就不能解决问题了。
以下附上我的代码:
/*
*二叉树建立方法一
*2014.12.17
*/
root create_(){
root n;
char v;
v=getchar();
if(v==‘ ‘)
return NULL;
else {
if(!(n=(node*)malloc(sizeof(node))))
{
printf("分配内存失败");
exit(1);
}
n->data=v;
n->left=create_();
n->right=create_();
return n;
}
}
/*
*二叉树建立方法二
*2014.12.17
*/
void create_(root *t)
{
char v;
scanf("%c",&v);
if(v==‘ ‘)
{
*t=NULL;
}
else {
if(!(*t=(node*)malloc(sizeof(node))))
{
printf("分配内存失败");
exit(1);
}
(*t)->data=v;
create_(&((*t)->left));
create_(&((*t)->right));
}
return ;
}
标签:blog ar sp 数据 div 2014 问题 log bs
原文地址:http://www.cnblogs.com/yang95/p/4170136.html