求大神指教二叉排序树的递归建立
这是我创建二叉树的程序,怎样改才能创建二叉排序树。#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
typedef struct BTnode{
int data;
struct BTnode *lchild,*rchild;
}BTNODE,*PBTNODE;
PBTNODE create_BTree(PBTNODE);
void inordertraverse_BTree(PBTNODE T);
int main (void){
PBTNODE H=NULL;
H=create_BTree(H);
printf("中序遍历为:");
inordertraverse_BTree(H);
return 0;
}
PBTNODE create_BTree(PBTNODE T)
{
int i;
scanf("%d",&i);
if(-1==i)
{ T=NULL;
}
else {
T=(BTNODE *)malloc(sizeof(BTNODE));
T->data=i;
T->lchild=create_BTree(T->lchild);
T->rchild=create_BTree(T->rchild);
}
return T;
}
//中序遍历
void inordertraverse_BTree(PBTNODE T){
if(NULL!=T)
{ if(NULL!=T->lchild)
{ inordertraverse_BTree(T->lchild);}
printf("%d\n",T->data);
if(NULL!=T->rchild)
{ inordertraverse_BTree(T->rchild);
}
}
}