#include
#include
#defineOVERFLOW1
#defineERROR1
#defineOK0
typedefstructBiTNode{
chardata;
structBiTNode*lchild,*rchild;
}BiTNode,*BiTree;
intCreateBiTree(BiTreeT){
/*先序输入二叉树中结点的值,以'#'表示空树*/
charch;
scanf("%c",&ch);
if(ch=='#')T=NULL;
else{
if(!(T=(BiTNode*)malloc(sizeof(BiTNode))))
exit(OVERFLOW);
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
returnOK;
}
intPrintElement(charc){
printf("%c",c);
if(c=='#')return1;
elsereturn0;
}
intPreOrderTraverse(BiTreeT,int(*Visit)(charc)){
//Visit是输出树结点元素的值的应用函数
//先序遍历二叉树T的递归算法,对每个非空结点调用Visit函数
if(T)
{
if(!Visit(T->data))
if(PreOrderTraverse(T->lchild,Visit))
if(PreOrderTraverse(T->rchild,Visit))
returnOK;
returnERROR;
}
else
returnOK;//空树
}
voidmain()
{
BiTreeT;
CreateBiTree(T);
PreOrderTraverse(T,PrintElement);
printf("\n");
}
在VC6.0下编译、构建多没问题,运行,输入ABC##DE##F###回车后错误。
我看了半天没看出错误来,请大家看看我是错在哪了?先谢谢好心人了!!!
分 -->
|