#include <iostream>
#define TRUE 1
#define FALSE 0
using namespace std;
typedef int Status;
typedef struct BtNode
{
int data; //数据域
struct BtNode *lchild,*rchild;
}BtNode,*BTree;
//二叉排序树的查找操作
//参数1:BTree T ,查找操作不修改这个二叉排序树,所以不采用引用方式
//参数2:int key ,要查找的值
//参数3:BTree f ,f指向T的双亲,初始的值为NULL;
//参数4:BTree &p , 若找到,则p用来保存查找到的元素的位置,没找到则p=f,所以采用引用方式带回
/*********************************************************/
Status SerachBST(BTree T , int key ,BTree f, BTree &p)
{
if(!T) //查找不成功
{
p=f;
return FALSE;
}
else if(key == T->data) //查找成功
{
p=T; //p记录下查找到的位置
return TRUE;
}
else if(key < T->data)
return SerachBST(T->lchild,key,T
C++数据结构-二叉排序树的查找、创建和删除
最新推荐文章于 2021-09-19 17:48:42 发布