Ⅰ 二叉树的建立问题
你这是先序建立二叉树。Q表示的是左或右孩子为空。。
Ⅱ 二叉树建立问题
ch为字符串类型,'#'为字符类型当然不能比较了,
试试:ch=="#"
Ⅲ 二叉树的创建问题
绿竹别其三分景 红梅正报万家春 横批:春回大地
Ⅳ 二叉树创建问题!
程序逻辑上有错误。
else{}里面的代码,生成根节点后,再调用create_btree();创建左子树,调用create_btree()时再创建左子树的根节点,然后再调用。就这样一直循环下去。
输入“#”的时候返回NULL,怎样判断这个NULL?如果生成的左子树有节点右子树没有节点,怎样判断并返回上层节点?
你用笔按照你的程序写一下生成二叉树的过程就知道了。
Ⅳ 用C语言来建立二叉树的遍历出现的问题
经验证,没有出现你所说的问题。少了 #include<stdlib.h>
我把初始化函数改了:
Btree *CreateBtree()
{Btree *t,*p;
int i;
Datatype x;
Btree **seq;
seq=(Btree**)malloc(maxsize*sizeof(Btree*));
t=(Btree*)malloc(sizeof(Btree));
p=(Btree*)malloc(sizeof(Btree));
scanf("%d%c",&i,&x);
if(x!='@')
{
t->data=x;
t->lchild=NULL;
t->rchild=NULL;
}
else
return NULL;
seq[i]=t;
scanf("%d%c",&i,&x);
while(x!='@')
{
p->data=x;
t->lchild=NULL;
t->rchild=NULL;
seq[i]=p;
if(i%2==0)
seq[(i/2)]->lchild=p;
else
seq[(i/2)]->rchild=p;
scanf("%d%c",&i,&x);
}
return t;
}
Ⅵ 数据结构二叉树的建立问题
*t=(BiTree)malloc(sizeof(BiNode));//分配内存有问题
应为:*t=(BiTree*)malloc(sizeof(BiNode *))
Ⅶ 关于二叉树建立的一个问题~~~
代码没错,只是输出时不符合要求。
我修改了如下:
#include<stdio.h>
#define DEN sizeof(struct tree)
struct tree
{
struct tree * left;
struct tree * right;
int num;
};
int main()
{
struct tree * p2;
struct tree * treefoundation();
void treesearch();
p2=NULL;
p2=treefoundation();
treesearch(p2);
//printf("%d",p2->num);
getch();
return(0);
}
struct tree * treefoundation()
{
struct tree * p1;
int n;
printf("please input the current num of node!\n");
scanf("%d",&n);
if(n!=0)
{
p1=(struct tree *)malloc(DEN);
if(p1==NULL)
{
printf("the space is out!!\n");
return(0);
}
p1->num=n;
p1->left=treefoundation();
p1->right=treefoundation();
}
else
{
p1=NULL;
}
return(p1);
}
void treesearch(struct tree *p)
{
if(p==NULL)
return;
printf("%d\t",p->num);
treesearch(p->left);
treesearch(p->right);
}
运行后是正确的,图贴不上来...
Ⅷ 关于创建二叉树的问题
可以,其实在实现时一般是这样做,先用变量存储输入的数,在创建节点,再把数存进节点
Ⅸ 关于数据结构中递归建立二叉树时出现了问题
CreateBT(T->lchild);
CreateBT(T->rchild);
这两句应该是
T->lchild=CreateBT();
T->rchild=CreateBT();
这样吧
最后多输入几个空格试试看?就输入部分来看,应该没有很大的问题
Ⅹ Java建立二叉树的问题
应该是类型不一致,你输入的是string 而你的bitTree方法里面的参数是TreeNode类型的