- BinTree Insert( BinTree BST, ElementType X )
- {
- if( !BST ){
- BST = (BinTree)malloc(sizeof(struct TNode));
- BST->Data = X;
- BST->Left = BST->Right = NULL;
- }
- else {
- if( X < BST->Data )
- BST->Left = Insert( BST->Left, X );
- else if( X > BST->Data )
- BST->Right = Insert( BST->Right, X );
-
- }
- return BST;
- }
-
- BinTree Delete( BinTree BST, ElementType X )
- {
- Position Tmp;
-
- if( !BST )
- printf("要删除的元素未找到");
- else {
- if( X < BST->Data )
- BST->Left = Delete( BST->Left, X );
- else if( X > BST->Data )
- BST->Right = Delete( BST->Right, X );
- else {
-
- if( BST->Left && BST->Right ) {
-
- Tmp = FindMin( BST->Right );
- BST->Data = Tmp->Data;
-
- BST->Right = Delete( BST->Right, BST->Data );
- }
- else {
- Tmp = BST;
- if( !BST->Left )
- BST = BST->Right;
- else
- BST = BST->Left;
- free( Tmp );
- }
- }
- }
- return BST;
- }
posted on
2019-08-11 20:39
董南
阅读(
666)
评论()
编辑
收藏
举报