Advertisement
Guest User

Untitled

a guest
May 6th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.52 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. struct Node
  6. {
  7.     int x;
  8.     int count;
  9.     Node *left, *right;
  10. };
  11.  
  12. void Show(Node *&Tree)
  13. {
  14.     if (Tree != NULL)
  15.     {
  16.         Show(Tree->left);
  17.         cout << Tree->x << endl;
  18.         Show(Tree->right);
  19.     }
  20. }
  21.  
  22. void Add_Node(int x, Node *&MyTree)
  23. {
  24.     if (MyTree == NULL)
  25.     {
  26.         MyTree = new Node;
  27.         MyTree->x = x;
  28.         MyTree->left = MyTree->right = NULL;
  29.     }
  30.     if (x < MyTree->x)
  31.     {
  32.         if (MyTree->left != NULL) Add_Node(x, MyTree->left);
  33.         else
  34.         {
  35.             MyTree->left = new Node;
  36.             MyTree->left->left = MyTree->left->right = NULL;
  37.             MyTree->left->x = x;
  38.         }
  39.     }
  40.     if (x > MyTree->x)
  41.     {
  42.         if (MyTree->right != NULL) Add_Node(x, MyTree->right);
  43.         else
  44.         {
  45.             MyTree->right = new Node;
  46.             MyTree->right->right = MyTree->right->left = NULL;
  47.             MyTree->right->x = x;
  48.         }
  49.     }
  50. }
  51.  
  52. void Del(Node *&Tree)
  53. {
  54.     if (Tree != NULL)
  55.     {
  56.         Del(Tree->left);
  57.         Del(Tree->right);
  58.         delete Tree;
  59.         Tree = NULL;
  60.     }
  61. }
  62.  
  63. void Count(Node *Tree)
  64. {
  65.     if (Tree != NULL)
  66.     {
  67.         int k;
  68.         k++;
  69.         Tree->count = k;
  70.         Count(Tree->left);
  71.         Count(Tree->right);
  72.     }
  73. }
  74.  
  75. int _tmain(int argc, _TCHAR* argv[])
  76. {
  77.     setlocale(LC_ALL, "Russian");
  78.     Node *Tree = NULL;
  79.     int N;
  80.     int number;
  81.     cout << "Введите количество элементов "; cin >> N;
  82.     cout << "Введите числа ";
  83.     for (int i(0); i < N; i++)
  84.     {
  85.         cin >> number;
  86.         Add_Node(number, Tree);
  87.     }
  88.     cout << "Полученное дерево" << endl;
  89.     Show(Tree);
  90.     Del(Tree);
  91.     system("pause");
  92.     return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement