#include <iostream>
#include <cstdlib>
using namespace std;
typedef struct BitNode
{
int data;
struct BitNode *lc,*rc;
}BitNode;
typedef BitNode* Bitree;
//递归查找
int search_bstree(Bitree t,int key,Bitree f,Bitree *p)
{
if(!t)//空树不用查
{
*p=f;
return 0;
}
else if(key==t->data)
{
*p=t;
return 1;
}
else if(key<t->data)
{
//如果需要查找的元素小于当前结点,向左子树进行搜索
return search_bstree(t->lc,key,t,p);
}
else
{
//如果需要查找的元素大于当前结点,向右子树进行搜索
return search_bstree(t->rc,key,t,p);
}
}
//插入函数 还是采用递归插入的方法
Bitree tree_insert(Bitree t,int key)
{
if(t==NULL)
{
t=new BitNode();
t->lc=NULL;
t->rc=NULL;
t->data=key;
return t;
}
//递归插入即可
if(t->data>key) t->lc=tree_insert(t->lc,key);
else t->rc=tree_insert(t->rc,key);
return t;
}
//创建二叉树
Bitree Create_Tree(Bitree t,int d[],int n)
{
for(int i=0;i<n;i++
二叉排序树实现动态查找
于 2024-08-08 23:21:21 首次发布