Advertisement
leonard007

Untitled

Nov 28th, 2022
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.81 KB | None | 0 0
  1. Node* suprima(Node* node, int key)
  2. {
  3.     // base case
  4.     if (!node)
  5.         return node;
  6.  
  7.     if (key < node->key)
  8.         return suprima(node->left, key);
  9.  
  10.     else if (key > node->key)
  11.         return suprima(node->right, key);
  12.  
  13.     else {  // key == node->key
  14.  
  15.         // 1 fiu sau 0 fii
  16.         if (!node->left) {
  17.             Node* aux = node->right;
  18.             free(node);
  19.             return aux;
  20.         }
  21.         else if (!node->right) {
  22.             Node* aux = node->left;
  23.             free(node);
  24.             return aux;
  25.         }
  26.  
  27.         // 2 fii
  28.         // succesor
  29.         Node* succ = succesor(node);
  30.  
  31.         // copie key succesor -> node
  32.         node->key = succ->key;
  33.  
  34.         // sterge succesor
  35.         node->right = suprima(node->right, succ->key);
  36.  
  37.     }
  38.  
  39.     return node;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement