二叉树的问题
/* Note:Your choice is C IDE */#include "stdio.h"
#include<stdlib.h>
typedef struct bitnode
{
int data;
struct bitnode *lchild,*rchild;
}bitnode,*bittree;
bittree cre_tree()
{
int x;
bittree root;
scanf("%d",&x);
if(x==-1)root=NULL;
else
{
root=(bittree)malloc(sizeof(bitnode));
root->data=x;
root->lchild=cre_tree();
root->rchild=cre_tree();
}
return root;
}
void preorder(bittree root)
{
if(root)
{
printf("%4d",root->data);
preorder(root->lchild);
preorder(root->rchild);
}
}
void inorder(bittree root)
{
if(root)
{
inorder(root->lchild);
printf("%4d",root->data);
inorder(root->rchild);
}
}
void postorder(bittree root)
{
if(root)
{
postorder(root->lchild);
postorder(root->rchild);
printf("%4d",root->data);
}
}
void main()
{
bittree root;
root=(bittree)malloc(sizeof(bitnode));
root=cre_tree();
preorder(root);printf("\n\n");
inorder(root);printf("\n\n");
postorder(root);printf("\n\n");
}
大家帮我看看,是那里出了问题,为什么运行的结果没有全对。