zoukankan      html  css  js  c++  java
  • PTA 6-12 (二叉树的递归删除)

     1 BinTree Insert( BinTree BST, ElementType X )
     2 {
     3     if (BST==NULL) {
     4         BinTree tmp=(BinTree)malloc(sizeof(struct TNode));
     5         tmp->Data=X;
     6         tmp->Left=tmp->Right=NULL;
     7         return tmp;
     8     };
     9     if (X<BST->Data)  
    10         BST->Left=Insert(BST->Left,X);
    11     else              
    12         BST->Right=Insert(BST->Right,X);
    13     return BST;
    14 }
    15 
    16 Position Find( BinTree BST, ElementType X ) {
    17     if (BST==NULL||BST->Data==X)  return BST;
    18     if (X<BST->Data)  return Find (BST->Left,X);
    19     else              return Find (BST->Right,X); 
    20 }
    21 
    22 Position FindMin( BinTree BST ) {
    23     if (BST==NULL||BST->Left==NULL) return BST;
    24     else                            return FindMin (BST->Left);
    25 }
    26 
    27 Position FindMax( BinTree BST ) {
    28     if (BST==NULL||BST->Right==NULL) return BST;
    29     else                             return FindMax (BST->Right);
    30 }
    31 
    32 BinTree Delete( BinTree BST, ElementType X ) {
    33     BinTree TMP;
    34     if (BST==NULL) {
    35         printf ("Not Found
    ");
    36         return NULL;
    37     }
    38     if (X<BST->Data) 
    39         BST->Left=Delete (BST->Left,X);
    40     else  if (X>BST->Data)           
    41         BST->Right=Delete (BST->Right,X);
    42     else {
    43         if (BST->Left!=NULL&&BST->Right!=NULL)  {
    44             TMP=FindMin (BST->Right);
    45             BST->Data=TMP->Data;
    46             BST->Right=Delete (BST->Right,TMP->Data);
    47         }
    48         else {
    49             TMP=BST;
    50             if (BST->Left!=NULL) 
    51                 BST=BST->Left;
    52             else if (BST->Right!=NULL)
    53                 BST=BST->Right;
    54             else BST=NULL;
    55         }
    56     }
    57     return BST;
    58 }
    抓住青春的尾巴。。。
  • 相关阅读:
    [武汉集训] Cliquers
    [NOI2017] 泳池
    [NOWCODER7] 小睿睿的方案
    动态dp初探
    [WC2008] 游览计划
    插头dp初探
    最小斯坦纳树初探
    2020ccpc总结
    Finding Palindromes
    最长非严格上升子序列的思考 && CF 1437E Make It Increasing
  • 原文地址:https://www.cnblogs.com/xidian-mao/p/10079559.html
Copyright © 2011-2022 走看看