Facebook
From Matyo, 2 Weeks ago, written in C++.
Embed
Download Paste or View Raw
Hits: 180
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct elem
  5. {
  6.     int key;
  7.     elem * left, * right;
  8. } *root = NULL;
  9.  
  10. int h = 0;
  11. void add1(int n, elem* &t)
  12. {
  13.     if (t == NULL)
  14.     {
  15.         t = new elem;  t->key = n;
  16.         t->left = t->right = NULL;
  17.     }
  18.     else
  19.     {
  20.         if (t->left == NULL && t->right == NULL)
  21.         {  
  22.             h++;
  23.             add1(n, t->left);
  24.         }
  25.         else
  26.             if (t->left != NULL && t->right != NULL)
  27.             {
  28.                 add1(n, t->left);
  29.             }
  30.             else
  31.                // if (t->left == NULL)
  32.                //     add1(n, t->left);
  33.                // else
  34.                     add1(n, t->right);
  35.     }
  36. }
  37.  
  38. void add(int n)
  39. {
  40.     add1(n, root);
  41. }
  42.  
  43. void pre_order(elem* t)
  44. {
  45.     if (t)
  46.     {
  47.         cout << t->key << " ";
  48.         pre_order(t->left);
  49.         pre_order(t->right);
  50.     }
  51. }
  52.  
  53. void in_order(elem* t)
  54. {
  55.     if (t)
  56.     {
  57.         in_order(t->left);
  58.         cout << t->key << " ";
  59.         in_order(t->right);
  60.     }
  61. }
  62.  
  63. void post_order(elem* t)
  64. {
  65.     if (t)
  66.     {
  67.         post_order(t->left);
  68.         post_order(t->right);
  69.         cout << t->key << " ";
  70.     }
  71. }
  72.  
  73. void pre_order()
  74. {
  75.     pre_order(root);
  76. }
  77.  
  78. void in_order()
  79. {
  80.     in_order(root);
  81. }
  82.  
  83. void post_order()
  84. {
  85.     post_order(root);
  86. }
  87.  
  88. int main()
  89. {
  90.     int arr[] = { 6,4,3,2,5,8,7,9 };
  91.     for (int i = 0; i < 8; i++)
  92.     {
  93.         add(arr[i]);
  94.     }
  95.  
  96.     cout << "Postfiksno obhojdane: ";
  97.     post_order();
  98.     cout << endl;
  99.     cout << "Infiksno obhojdane: ";
  100.     in_order();
  101.     cout << endl;
  102.     cout << "Prefiksno obhojdane: ";
  103.     pre_order();
  104.     cout << endl;
  105.     cout << "Viso4inata na darvoto h= " << h;
  106.    // inorder(root);
  107.    // std::cout << "Hello World!n";
  108. }