还是不知道是哪里出问题了
大家能不能帮忙看下,确实不知道哪里出问题了#include<stdio.h>
#include<malloc.h>
typedef struct NODE *snode;
typedef struct NODE
{
snode father;
snode left;
snode right;
char valu;
};
void inorder(snode p)
{
if(p)
{
inorder(p->left);
printf("%c",p->valu);
inorder(p->right);
}
}
int main()
{
int n,i,f,l,r;
char c;
snode p,*node;
while(scanf("%d",&n)!=EOF)
{
node=(snode *)malloc((n+1)*sizeof(struct NODE ));
for(i=1;i<=n;i++)
node[i]=(snode)malloc(sizeof(struct NODE));
for(i=1;i<=n;i++)
node[i]->left=node[i]->right=node[i]->father=0;
scanf("%d%d%d%c",&f,&l,&r,&c);
node[f]->valu=c;
node[f]->left=node[l];node[l]->father=node[f];
node[f]->right=node[r];node[r]->father=node[f];
p=node[1];
while(p->father)
{
p=p->father;
}
inorder(p);
printf("\n");
}
return 0;
}
下面这个是测试数据
Sample Input
7
1 2 3 =
2 0 0 a
3 4 5 +
4 0 0 b
5 6 7 +
6 0 0 c
7 0 0 d
Sample Output
a=b+c+d
结果要实现中序输出