大家帮忙看下这个.
#include<stdio.h>#include<stdlib.h>
#define NULL 0
typedef struct node
{
int key;
struct node *lchild, *rchild;
}bstnode;
void inorder(bstnode *t) //中序遍历二叉树,所得为排序结果.
{
if(t!=NULL)
{
inorder(t->lchild);
printf("%4d",t->key);
inorder(t->rchild);
}
}
bstnode * insertbst(bstnode *t,bstnode *s) //将待插入结点*s插入到二叉树排序树
{
bstnode *f,*p;
p=t;
while(p!=NULL)
{
f=p;
if(s->key==p->key)
return t;
if(s->key<p->key)
p=p->lchild;
else
p=p->rchild;
}
if(t==NULL)
return s;
if(s->key<f->key)
f->lchild=s;
else
f->rchild=s;
return t;
}
bstnode * creatord() //建立二叉排序树
{
bstnode *t,*s;
int key;
t=NULL;
printf("依次输入各记录的key,完毕请输入0:\n");
scanf("%d",&key);
while(key!=0);
{
s=(bstnode *)malloc(sizeof(bstnode));
s->key=key;
s->lchild=NULL;
s->rchild=NULL;
t=insertbst(t,s);
scanf("%d",&key);
}
return t;
}
main()
{
bstnode *root;
root=creatord();
printf("排序结果:\n");
inorder(root);
getchar();
}
输入后怎么不出来结果呀?