二叉排序树的遍历及输出

#include<stdio.h>
#include<stdlib.h>
typedef struct node{//BST节点
int key;
struct node *lchild,*rchild;
}BSTNode,*BSTree;
void InsertBST(BSTree *bst,int key){//插入程序
BSTree s;
if(*bst==NULL){
s=(BSTree)malloc(sizeof(BSTNode));
s->key=key;
s->lchild=NULL;s->rchild=NULL;
*bst=s;
}
else if(key<(*bst)->key)
InsertBST(&((*bst)->lchild),key);
else if(key>(*bst)->key)
InsertBST(&((*bst)->rchild),key);
}
void CreateBST(BSTree *bst){//调用插入,实现BST的建立
int key;
*bst=NULL;
scanf("%d",&key);
while(key!=-1){
InsertBST(bst,key);
scanf("%d",&key);
}
}
void mid(BSTree *bst){//BST中序遍历是一个递增的序列
if(*bst){
mid(&((*bst)->lchild));
printf("%d ",(*bst)->key);
mid(&((*bst)->rchild));
}
}
void main(){
BSTree p;
CreateBST(&p);
mid(&p);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值