Advertisement
allia

дерево

Nov 9th, 2020
730
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.30 KB | None | 0 0
  1. #include<iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct tnode
  6. {
  7.   int field;           // поле данных
  8.   struct tnode *left;  // левый потомок
  9.   struct tnode *right; // правый потомок
  10. };
  11.  
  12. // Функция добавления узла к дереву
  13. struct tnode* addnode(int x, tnode *tree)
  14. {
  15.   if (tree == NULL)
  16.   { // Если дерева нет, то формируем корень
  17.     tree = new tnode; // память под узел
  18.     tree->field = x;   // поле данных
  19.     tree->left =  NULL;
  20.     tree->right = NULL; // ветви инициализируем пустотой
  21.   }
  22.   else  if (x < tree->field)   // условие добавление левого потомка
  23.     tree->left = addnode(x, tree->left);
  24.   else    // условие добавление правого потомка
  25.     tree->right = addnode(x,tree->right);
  26.  
  27.   return(tree);
  28. }
  29. // Функция вывода дерева
  30. void treeprint(struct tnode *p)
  31. {
  32.   if(p != NULL) {
  33.     treeprint(p->left);
  34.     cout << p->field << " ";
  35.     treeprint(p->right);
  36.   }
  37. }
  38.  
  39. int main()
  40. {
  41.   struct tnode *root;
  42.   root = NULL;
  43.   int n, m, znach;
  44.   cin >> n;
  45.   for (int i = 0; i<n; i++)
  46.   {
  47.     cin >> znach;
  48.     root = addnode(znach, root);
  49.   }
  50.  
  51. treeprint(root);
  52.  
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement