--------------------------------------------------------------------------------
各位老师你们好,帮我解解困吧!
下面的程序有点错误,不知道错在哪里,愿各位老师能帮个忙,“LJH”将不胜感激。下面的程序编译、连接
能通过,但不出结果。程序如下:
#include"stdio.h"
typedef struct node{
int data;
struct node *left,*right;
}bitree;
void insert(bitree *b,bitree *s) /*向一个二树插入一个结点*/
{if(b==NULL) b=s;
else if(s->data==b->data) return; /* 不作任何插入操作*/
else if(s->data<b->data) insert(b->left,s); /*将插入左子树中*/
else if(s->data>b->data) insert(b->right,s); /*将s插入右子树中*/
}
bitree *creat()
{bitree *b,*s;
int x;
b=NULL ;
do
{scanf("%d",&x); /*读入一个整数*/
s=(bitree *)malloc(sizeof(bitree)); /*产生一个树结点*/
s->data=x;
s->left=NULL;
s->right=NULL;
insert(b,s); /*插入该结点*/
}
while(x!=-1);
return b;
}
void print( bitree *b) /*输出一颗二叉树*/
{ if (b!=NULL)
{printf("%d",b->data);
if(b->left!=NULL||b->right!=NULL)
{printf("(");
print(b->left);
if(b->right!=NULL) printf(",");
print(b->right);
printf(")");
}
}
}
main()
{bitree *b:
b=creat() ;
print(b);
}