c语言运行大红叉,c语言实现二叉树,碰到些问题,希望大神可以指导我解决,到程序运行完成,谢谢!...

抱歉之前两个地方没注意,已经修改并且测试了可以,但二叉树所有叶子结点都要用#结束哦所以最后有几个空指针就要几个#建议题主先画个二叉树再测试

#include

#include

#define STACK_INIT_SIZE 10

#define INCREMENT_SIZE 10

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR -1

#define OVERFLOW -2

typedef int status;

typedef char telemtype;

typedef struct bitnode

{

telemtype data;

struct bitnode lchild, *rchild;

}bitnode ,*bitree;

status creatbitree(bitree &t)

{

char ch;

scanf("%c",&ch);

getchar(); //如果你的输入是回车则需要一个etchar吃掉回车

if(ch=='#') //这的判断是双等号

t=NULL;

else{

if(!(t=(bitree)malloc(sizeof(bitnode))))

exit(OVERFLOW);

t->data=ch;

creatbitree(t->lchild);

creatbitree(t->rchild);

}

return OK;

}

status printelement(telemtype e)

{

printf("%c",e);

return OK;

}

status preordertraverse(bitree t,status( *visit)(telemtype e))

{

if(t){

if(visit(t->data))

if(preordertraverse(t->lchild,visit))

if(preordertraverse(t->rchild,visit))

return OK;

return ERROR;

}else

return OK;

}

status zhongxu(bitree t,status( visit)(telemtype e))

{

if (t){

if(zhongxu(t->lchild,visit))

if(visit(t->data))

if(zhongxu(t->rchild,visit))

return OK;

return ERROR;

}else

return OK;

}

int main(int argc, char argv[])

{

int bitnode;

bitree t;

t=NULL;

creatbitree(t);

printf("\n");

preordertraverse(t,printelement);

printf("\n");

zhongxu(t,printelement);

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值