#include <iostream>
using namespace std;
#include<stdlib.h>
#define MAXSIZE 50
typedef int KeyType;
typedef int ElemType;
typedef struct BSTNode{
ElemType data;
struct BSTNode *lchild,*rchild;
}BSTNode,*BSTree;
void SearchBST(BSTree T,KeyType key);
void InsertBST(BSTree &T,ElemType e);
void CreatBST(BSTree &T);
void SearchBST(BSTree T,KeyType key)
{
if(T)
cout<<T->data<<" ";
if(!T){
cout<<endl;
cout<<"没找到";
}
else if(key==T->data){
cout<<endl;
cout<<"找到了";
}
else if(key<T->data){
SearchBST(T->lchild,key);
}
else{
SearchBST(T->rchild,key);
}
}
void InsertBST(BSTree &T,int e)
{
if(!T)
{
BSTNode *S;
S=new BSTNode;
S->data=e;
S->lchild=S->rchild=NULL;
T=S;
}
else if(e<(T->data))
InsertBST(T->lchild,e);
else if(e>(T->data))
InsertBST(T->rchild,e);
}
void CreatBST(BSTree &T)
{
T=NULL;
int e;
cin>>e;
while(e!=0)
{
InsertBST(T,e);
cin>>e;
}
}
int main ()
{ BSTree T; ElemType e; KeyType key;
CreatBST(T);
cin>>key;
SearchBST(T,key);
return 0;
}
数据结构-二叉排序树
于 2022-03-01 09:29:53 首次发布
这篇博客介绍了如何创建和操作二叉搜索树(BST)。包括了`SearchBST`函数用于查找节点,`InsertBST`函数用于插入元素,以及`CreatBST`函数用于构建BST。示例代码展示了如何插入一系列整数并进行查找操作。
摘要由CSDN通过智能技术生成