SHARE
TWEET

Untitled

a guest May 19th, 2019 76 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct node {
  6.     int val;
  7.     node *P;
  8.     node *L;
  9.     node *O;
  10. };
  11.  
  12. void insertBST(node *& root, int val) {
  13.     if (root == NULL) {
  14.         root = new node;
  15.         root->val = val;
  16.         root->L = root->P = NULL;
  17.     }
  18.     else {
  19.         if (val < root->val) {
  20.             insertBST(root->L, val);
  21.             root->L->O = root;
  22.         }
  23.         else {
  24.             insertBST(root->P, val);
  25.             root->P->O = root;
  26.         }
  27.     }
  28. }
  29.  
  30. void inorder(node *root) {
  31.     if (root != NULL) {
  32.         inorder(root->L);
  33.         cout << root->val << " ";
  34.         inorder(root->P);
  35.     }
  36. }
  37.  
  38. void find_sek(node*root, int val) {
  39.     while (root) {
  40.         if (root->val == val) {
  41.             cout << "element istnieje!" << endl;
  42.             break;
  43.         }
  44.         else if (root->val > val) {
  45.             root = root->L;
  46.         }
  47.         else {
  48.             root = root->P;
  49.         }
  50.     }
  51. }
  52.  
  53. void find_rek(node*root, int val) {
  54.     if (root != NULL) {
  55.         if (root->val == val) {
  56.             cout << "element istnieje" << endl;
  57.         }
  58.         else if (root->val > val) {
  59.             find_rek(root->L, val);
  60.         }
  61.         else {
  62.             find_rek(root->P, val);
  63.         }
  64.     }
  65. }
  66.  
  67. struct node* usun_liscie(struct node*root) {
  68.     if (root != NULL)
  69.     {
  70.         if (root->L == NULL && root->P == NULL)
  71.         {
  72.             node * p = new node;
  73.             p = root->P;
  74.             root->P = NULL;
  75.             delete p;
  76.            
  77.             return NULL;
  78.         }
  79.         else
  80.         {
  81.             root->L = usun_liscie(root->L);
  82.             root->P = usun_liscie(root->P);
  83.         }
  84.     }
  85.  
  86.  
  87.     return root;
  88. }
  89.  
  90. int main()
  91. {
  92.     node*root = NULL;
  93.     insertBST(root, 15);
  94.     insertBST(root, 6);
  95.     insertBST(root, 18);
  96.     insertBST(root, 17);
  97.     insertBST(root, 20);
  98.     insertBST(root, 3);
  99.     insertBST(root, 7);
  100.     insertBST(root, 2);
  101.     insertBST(root, 4);
  102.     insertBST(root, 13);
  103.     insertBST(root, 9);
  104.  
  105.     inorder(root);
  106.     cout << endl;
  107.     usun_liscie(root);
  108.     inorder(root);
  109.     cout << endl;
  110.  
  111.     system("PAUSE");
  112.     return 0;
  113. }
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