//二叉排序树存储结构
typedef struct BTNode
{
int key;
struct BTNode *lchild;
struct BTNode *rchild;
}BTNode;
//二叉排序树查找算法
BTNode *BSTSearch(BTNode *bt,int key)
{
if(bt==NULL)
return NULL;
else
{
if(bt->key==key)
return bt;
else if(key<bt->key)
return BSTSearch(bt->lchild,key);
else
return BSTSearch(bt->rchild,key);
}
}
//二叉排序树的插入关键字算法
int BSTInsert(BTNode *&bt,int key)//注意此处是指针变量的引用
{
if(bt==NULL)
{
bt=(BTNode *)malloc(sizeof(BTNode));
bt->lchild=bt->rchild=NULL;
bt->key=key;
return 1;
}
else
{
if(key==bt->key)
return 0;
else if(key<bt->key)
return BSTInsert(bt->lchild,key);
else
return BSTInsert(bt->rchild,key);
}
}
//二叉排序树的构造
void CreatBST(BTNode *&bt,int key[],int n)
{
int i;
bt=NULL;
for(i=1;i<=n;i++)
BSTInsert(bt,key[i]);
}
二叉排序树:查找,插入,构造
最新推荐文章于 2023-09-13 13:54:49 发布