69,717
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
typedef struct bitnode{
int data;
struct bitnode *lchild,*rchild;
}bitnode;
void createbitree(bitnode *t){ //前序遍历创建二叉树
char ch;
ch = getchar();
if(ch == '.')
t = NULL;
else{
t = (bitnode *)malloc(sizeof(bitnode));
t->data = ch; //生成根结点;
createbitree(t->lchild); //构造左子树;
createbitree(t->rchild); //构造右子树;
}
}
void preorder(bitnode *t){ //前序遍历显示二叉树
if (t == NULL)
return;
printf("%c",t->data);
preorder(t->lchild);
preorder(t->rchild);
}
int main(int argc, char *argv[])
{
bitnode *t;
createbitree(t);
printf("二叉树已建立\n"); //这一步能正常显示。
preorder(t); //。。。。。出问题的代码。。。。。。。
system("PAUSE");
return 0;
}
void createbitree(bitnode **t){ //前序遍历创建二叉树
char ch;
ch = getchar();
if(ch == '.')
*t = NULL;
else{
*t = (bitnode *)malloc(sizeof(bitnode));
(*t)->data = ch; //生成根结点;
createbitree(&(*t)->lchild); //构造左子树;
createbitree(&(*t)->rchild); //构造右子树;
}
}