二叉搜索树的定义和基本操作
1 BinTree Delete( BinTree BST, ElementType X ){
2 if (!BST) puts(“Not Found”);
3 else if (BST->Data<X) BST->Right=Delete(BST->Right,X);
4 else if (BST->Data>X) BST->Left=Delete(BST->Left,X);
5 else{//当前结点就是要删去的结点
6 if (!BST->Left&&!BST->Right){
7 BinTree Tmp=BST;
8 free(Tmp);
9 return NULL;
10 }
11 else if (BST->Left&&!BST->Right){
12 BinTree Tmp=BST->Left;
13 free(BST);
14 return Tmp;
15 }
16 else if (!BST->Left&&BST->Right){
17 BinTree Tmp=BST->Right;
18 free(BST);
19 return Tmp;
20 }
21 else{
22 BinTree Tmp=FindMax(BST->Left);
23 BST->Data=Tmp->Data;
24 BST->Left=Delete(BST->Left,Tmp->Data);
25 }
26 }
27 return BST;
28 }
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/96528.html