永发信息网

c语言程序 错在哪里???

答案:2  悬赏:0  手机版
解决时间 2021-05-25 10:22
  • 提问者网友:咪咪
  • 2021-05-24 15:12

#include<stdio.h>
#define LEN sizeof(struct BiNode)
struct BiNode
{
int data;
struct BiNode * lchild, * rchild;
} ;
struct BiNode * Creat()
{
int ch;
struct BiNode *root;
scanf("%d",&ch);
if (ch=='#') return NULL;
else{
root=(struct BiNode *)malloc(LEN);
root->data = ch;
root->lchild = Creat();
root->rchild = Creat();
}
return root;
}
void preorder(struct BiNode *bt)
{
if(bt!=NULL)
{
printf("%d\t",bt->data);
preorder(bt->lchild);
preorder(bt->rchild);
}
}
void cpreorder(struct BiNode *bt)
{
if(bt!=NULL)
{
inorder(bt->lchild);
printf("%d\t",bt->data);
inorder(bt->rchild);
}
}
void postorder(struct BiNode *bt)
{
if(bt!=NULL)
{
postorder(bt->lchild);
postorder(bt->rchild);
printf("%d\t",bt->data);
}
}
void main()
{
struct BiNode *root;
int a;
clrscr();
do
{
printf("1.Creat 2.preorder 3.cpreorder 4.postorder 5.exit\nPlease input select:");
scanf("%d",&a);
if(a==1) { root=Creat(); }
if(a==2) { preorder (root);}
if(a==3) { cpreorder(root); }
if(a==4) { postorder(root); }
if(a==5) exit(0);
}while(1);
}

错误提示::Underfined symbol _inorder in module yanzhe~2.c

最佳答案
  • 五星知识达人网友:玩家
  • 2021-05-24 16:23
中序遍历的函数里面:

void cpreorder(struct BiNode *bt)
{
if(bt!=NULL)
{
inorder(bt->lchild);
printf("%d\t",bt->data);
inorder(bt->rchild);
}
}

看见了吧,到底要用inorder还是cpreorder,自己统一一下吧,改成inorder的话,main函数里调用的地方也要改
全部回答
  • 1楼网友:十年萤火照君眠
  • 2021-05-24 17:07
inorder()函数你没有自己定义
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯