主题:帮忙看下这个出了什么问题
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef struct bnote
{
char data;
struct bnote *lchild,*rchild;
}bitree;
/*生成二叉树:用递归构造二叉树*/
bitree *CreatTree()
{
bitree *t;
char ch;
scanf("%c",&ch);
if(ch==' ') t==NULL;
else
{
t = (bitree*)malloc(sizeof(bitree)); //生成根结点
t->data = ch;
t->lchild = CreatTree(); //生成左孩子
t->rchild = CreatTree(); //生成右孩子
}
return t; //返回结点
}
/*遍历二叉树:用后序递归遍历法*/
void ReadTree(bitree *bt)
{
if(bt) //如结点非空
{
//if(bt->lchild!=NULL)[color=FF0000]
/*为什么每次调试的时候这里都会出现段异常呀?实在不理解 */
ReadTree(bt->lchild); //访问左孩子 [/color]
//if(bt->rchild!=NULL)
ReadTree(bt->rchild); //访问右孩子
printf("%c\n",bt->data);
}
}
int main(void)
{
bitree *bt;
bt = CreatTree(); //生成二叉树
ReadTree(bt); //遍历二叉树
free(bt);
printf("over");
system("pause");
return 0;
}
#include <stdlib.h>
#include <malloc.h>
typedef struct bnote
{
char data;
struct bnote *lchild,*rchild;
}bitree;
/*生成二叉树:用递归构造二叉树*/
bitree *CreatTree()
{
bitree *t;
char ch;
scanf("%c",&ch);
if(ch==' ') t==NULL;
else
{
t = (bitree*)malloc(sizeof(bitree)); //生成根结点
t->data = ch;
t->lchild = CreatTree(); //生成左孩子
t->rchild = CreatTree(); //生成右孩子
}
return t; //返回结点
}
/*遍历二叉树:用后序递归遍历法*/
void ReadTree(bitree *bt)
{
if(bt) //如结点非空
{
//if(bt->lchild!=NULL)[color=FF0000]
/*为什么每次调试的时候这里都会出现段异常呀?实在不理解 */
ReadTree(bt->lchild); //访问左孩子 [/color]
//if(bt->rchild!=NULL)
ReadTree(bt->rchild); //访问右孩子
printf("%c\n",bt->data);
}
}
int main(void)
{
bitree *bt;
bt = CreatTree(); //生成二叉树
ReadTree(bt); //遍历二叉树
free(bt);
printf("over");
system("pause");
return 0;
}