建立一个二叉树并打印出根结点的左孩子的内容,但是实现不了,请指教!!!!

来源:百度知道 编辑:UC知道 时间:2024/05/05 05:01:33
#include "stdio.h"
#include "stdlib.h"
typedef struct bitnode
{
char data;
struct bitnode *lchild;
struct bitnode *rchild;
}bitnode,*bitree;
bitree creatbitree(bitree);
bitree s;
main()
{

clrscr();
s=creatbitree(s);
printf("%c",s->rchild->data);
}
bitree creatbitree(bitree t)
{
char ch;
ch=getchar();
if(ch==' ')
t=NULL;
else
{
if(!(t=(bitree)malloc(sizeof(bitnode)))) exit(-1);
t->data=ch;
creatbitree(t->lchild);
creatbitree(t->rchild);
}
printf("%c",t->data);
return t;
}

子函数中临时开辟的空间在退出子函数的时候会自动释放,这是C语言的特点。你只是传参进去,调用函数不会改变该参数。这样是所有递归调用的函数等于没有执行。你的递归建树的过程有误。改正:
bitree creatbitree()
{
bitree t;
char ch;
ch=getchar();
if(ch==' ')
t=NULL;
else
{
if(!(t=(bitree)malloc(sizeof(bitnode)))) exit(-1);
t->data=ch;
t->lchild = creatbitree();
l->rchild = creatbitree();
}
printf("%c",t->data);
return t;
}
再试一下?

建立一个二叉树并打印出根结点的左孩子的内容,但是实现不了,请指教!!!! 采用二叉链表存储结构,按前根序输入二叉树的结点序列,建立二叉树并中根序遍历该二叉树,计算叶子节点的个数 什么是二叉树的根结点 二叉树结点的计算?? 用C语言编写程序,创建一个二叉树的二叉链表结构,然后输出从根结点到所有叶子结点的路径。 用C语言编写:建立一棵以二叉链表结构存储的二叉树,并对其进行遍历。求该二叉树中的结点个数等操作。 哈夫曼树的建立 建立最优二叉树 可以建立函数输入二叉树,并输出哈夫曼书 已知二叉树T中结点的前序和中序遍历序列建立一棵二叉树 二叉树删除叶结点的问题 怎么样才能算出一个树或二叉树有多少个结点?