数据结构复习-二叉排序树
作者:
nxdxml
,
2021-01-09 19:00:46
,
所有人可见
,
阅读 522
// 二叉排序树
BSTNode *BST_Search(BiTree T, ElemType key){ // 非递归,查找
while(T != NULL && key != T -> data){
if(key < T -> data) T = T -> lchild;
else T = T -> rchild;
}
return T;
}
int BST_Insert(BiTree &T, KeyType k){ // 插入
if(T == NULL){
T = (BiTree)malloc(sizeof(BSTNode));
T -> data = k;
T -> lchild = T -> rchild = NULL;
return 1; // 插入成功
}
else if(k == T -> data) return 0; // 存在
else if(k < T -> data) return BST_Insert(T -> lchild, k);
else return BST_Insert(T -> rchild, k);
}
// 删除
// 删除节点仅有一个子树时,直接用子树填上去
// 如果左右树都不空,*用右边子树中序遍历的第一个填上去