#include <stdio.h>
#include <malloc.h>
typedef struct BiTNode
{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void CreatBiTree(BiTree &T)
{
char ch;
scanf(&ch);
if (ch==' ')T==NULL;
else
{
if (!(T=(BiTNode *)malloc(sizeof(BiTNode))))
printf("error");
T->data=ch;
T->lchild=NULL;
T->rchild=NULL;
CreatBiTree(T->lchild);
CreatBiTree(T->rchild);//printf("ok");
}
}
void Preorder (BiTree &T)
{ printf("ok");
// 先序遍历二叉树
if (T) {
printf("%c\n",T->data); // 访问根结点
Preorder(T->lchild); // 遍历左子树
Preorder(T->rchild);// 遍历右子树
}
}
void main()
{
BiTree BT;
CreatBiTree(BT);
Preorder(BT);
}
CreatBiTree是建立二叉树的函数,Preorder是采用递归方法对其进行先序遍历。程序运行时并未执行“Preorder(BT);”,在CreatBiTree函数的最后一行加入断点执行时,会显示0xc0000005错误,请问这是怎么回事啊?谢谢各位
[此贴子已经被作者于2006-11-18 10:28:58编辑过]