Phoenix_x

Untitled

Apr 27th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.76 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct elem {
  6.     int key;
  7.     elem* left;
  8.     elem* right;
  9. } *root = NULL;
  10.  
  11.  
  12. bool found(elem *t, int n);
  13. void add(int n, elem *&t);
  14. void preorder(elem *t);
  15. void inorder(elem *t);
  16. void postorder(elem *t);
  17.  
  18.  
  19. void main()
  20. {
  21.     int broj;
  22.     cout << "Broj elementi: ";
  23.     cin >> broj;
  24.  
  25.     int number;
  26.     cout << "Vavedete elementi: " << endl;
  27.  
  28.     for    (int i = 0; i < broj; i++)
  29.     {
  30.         cin >> number;
  31.         add(number, root);
  32.     }
  33.  
  34.     preorder(root);
  35. }
  36.  
  37.  
  38. //obhozdane prav red - корен, lqvo poddarvo dqsno poddarvo
  39. void preorder(elem *t)
  40. {
  41.     if(t)
  42.     {
  43.         cout << t->key << "\t";
  44.         preorder(t->left);
  45.         preorder(t->right);
  46.     }
  47. }
  48.  
  49. //obhozdane vatreshen red - vqvo poddarvo, koren, dqsno
  50. void inorder(elem *t)
  51. {
  52.     if(t)
  53.     {
  54.         inorder(t->left);
  55.         cout << t->key << "\t";
  56.         inorder(t->right);
  57.     }
  58. }
  59.  
  60. //obhozdane v obraten red - lqvo poddarvo dqsno poddarvo koren
  61. void postorder(elem *t)
  62. {
  63.     if(t)
  64.     {
  65.         postorder(t->left);
  66.         postorder(t->right);
  67.         cout << t->key << "\t";
  68.     }
  69. }
  70.  
  71.  
  72. //1 6 9 7 1
  73.  
  74.  
  75. void add(int n, elem *&t) //dobavqne na listo
  76. {
  77.     if(t == NULL)
  78.     {
  79.         t = new elem;
  80.         t->key = n;
  81.         t->left = t->right = NULL;
  82.     }
  83.     else
  84.     {
  85.         if(t->key < n)
  86.         {
  87.             add(n, t->right);
  88.         }
  89.         else
  90.         {
  91.             add(n, t->left);
  92.         }
  93.     }
  94. }
  95.  
  96. bool found(elem *t, int n)
  97. {
  98.     if(t)
  99.     {
  100.  
  101.         if(t->key == n)
  102.         {
  103.             return true;
  104.         }
  105.  
  106.         cout << t->key << "\t";
  107.         preorder(t->left);
  108.         preorder(t->right);
  109.  
  110.         return false;
  111.     }
  112.  
  113.     return false;
  114. }
Advertisement
Add Comment
Please, Sign In to add comment