SHARE
TWEET

Untitled

a guest Jun 24th, 2019 70 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. struct Magazin
  2. {  
  3.     char name[32];
  4.     int kolvo_tovar; // у.е.
  5.  
  6. }mg;
  7.  
  8. struct Root
  9. {
  10.     Magazin mg;
  11.     int key;
  12.     Root *left, *right;
  13.  
  14. }*root = NULL;
  15.  
  16.  
  17. Root *search(Root * root, int key) // Функция поиска элемента по ключу, можно преобразовать
  18. {
  19.     // Если дерево пусто или ключ корня равен искомому ключу, то возвращается указатель на корень
  20.     if ((root == NULL) || (root->key = key))
  21.         return root;
  22.     // Поиск нужного узла
  23.     if (key < root->key)
  24.         return search(root->left, key);
  25.     else return search(root->right, key);
  26. }
  27.  
  28. Root* DeleteNode(Root *root, Magazin mg) {
  29.     if (root == NULL)
  30.         return root;
  31.  
  32.     if (mg.name == root->mg.name) {
  33.  
  34.         Root* tmp;
  35.         if (root->right == NULL)
  36.             tmp = root->left;
  37.         else {
  38.  
  39.             Root* ptr = root->right;
  40.             if (ptr->left == NULL) {
  41.                 ptr->left = root->left;
  42.                 tmp = ptr;
  43.             }
  44.             else {
  45.  
  46.                 Root* pmin = ptr->left;
  47.                 while (pmin->left != NULL) {
  48.                     ptr = pmin;
  49.                     pmin = ptr->left;
  50.                 }
  51.                 ptr->left = pmin->right;
  52.                 pmin->left = root->left;
  53.                 pmin->right = root->right;
  54.                 tmp = pmin;
  55.             }
  56.         }
  57.  
  58.         delete root;
  59.         return tmp;
  60.     }
  61.     else if (mg.name < root->mg.name)
  62.         root->left = DeleteNode(root->left, mg);
  63.     else
  64.         root->right = DeleteNode(root->right, mg);
  65.     return root;
  66. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top