Advertisement
wintest

SearchMeBae

Dec 11th, 2017
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.20 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4.  
  5. typedef struct Node *po;
  6. void printTriTo(po help);
  7. void doStuff(int x);
  8.  
  9. po root;
  10.  
  11. struct Node {//всеки елемент на дървото
  12.     int Data;
  13.     po Left;
  14.     po Right;
  15. };
  16. int main(){
  17.     int x;
  18.  
  19.     do{
  20.         cout << "Please enter x:" << endl;
  21.         cin >> x;
  22.         doStuff(x);
  23.         cout << endl;
  24.         cout << "Printing tree" << endl;
  25.         cout << endl;
  26.         printTriTo(root);
  27.     } while (true);
  28.  
  29. }
  30. void doStuff(int x) {
  31.  
  32.     po dataOrg;
  33.     dataOrg = new Node;
  34.     dataOrg->Data = x;
  35.     dataOrg->Left = NULL;
  36.     dataOrg->Right = NULL;
  37.  
  38.     if (root == NULL) {
  39.         root = dataOrg;
  40.     }
  41.     else {
  42.         po loc, insert;
  43.         insert = root;
  44.         loc = root;
  45.         while (loc != NULL && loc->Data != x) {
  46.             insert = loc;
  47.  
  48.             if (x < loc->Data) {
  49.                 loc = loc->Left;
  50.             }
  51.  
  52.             else {
  53.                 loc = loc->Right;
  54.             }
  55.         }
  56.  
  57.         if (loc == NULL) {
  58.             if (x < insert->Data) {
  59.                 insert->Left = dataOrg;
  60.             }
  61.             else {
  62.                 insert->Right = dataOrg;
  63.             }
  64.         }
  65.         else {
  66.             cout << "The element is already here!" << endl;
  67.             return;
  68.         }
  69.     }
  70.  
  71. }
  72.  
  73. void printTriTo(po help) {
  74.     if (help == NULL) return;
  75.  
  76.  
  77.     printTriTo(help->Left);
  78.     cout << help->Data << endl;
  79.     printTriTo(help->Right);
  80.  
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement