Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct node
  6. {
  7. char element;
  8. node *less, *more;
  9. };
  10.  
  11. node* create() {
  12. node *tree;
  13. tree = new node;
  14. tree->more = NULL;
  15. tree->less = NULL;
  16. tree->element = '\0';
  17. return tree;
  18. }
  19.  
  20. void Add(char el, node *tree) {
  21. /*
  22. if (tree == NULL) {
  23. cout << "NULL - processing." << endl;
  24. tree = create();
  25. tree->element = el;
  26. cout << tree->element << " " << "Ready." << endl;
  27. }
  28. else {
  29. cout << "Not NULL."<<endl;
  30. if (el>tree->element) Add(el, tree->more);
  31. else Add(el, tree->less);
  32. cout << el;
  33. }
  34. */
  35. if(tree->element == '\0')
  36. tree->element = el;
  37. if(el>tree->element){
  38. if(tree->more == NULL)
  39. tree->more = create();
  40. Add(el,tree->more);
  41. }
  42. if(el<tree->element){
  43. if(tree->more == NULL)
  44. tree->more = create();
  45. Add(el,tree->less);
  46. }
  47. }
  48.  
  49. void Print(node *tree, int u)
  50. {
  51. /*
  52. if (tree == NULL) {
  53. cout << "Pusto" << endl;
  54. return; //Если дерево пустое - выходим
  55. }
  56. else
  57. {
  58. cout << "Ne Pusto!" << endl;
  59. Print(tree->less, ++u);//С помощью рекурсивного посещаем левое поддерево
  60. for (int i = 0; i<u; ++i) cout << "|";
  61. cout << tree->element << endl; //И показываем элемент
  62. u--;
  63. }
  64. Print(tree->more, ++u); //С помощью рекурсии посещаем правое поддерево
  65. */
  66. if(tree->less != NULL)
  67. Print(tree->less, 0);
  68. if(tree->more != NULL)
  69. Print(tree->more, 0);
  70. cout << tree->element << endl;
  71. }
  72.  
  73. int main()
  74. {
  75. node *head1;
  76. int n; //Количество элементов
  77. char s; //Число, передаваемое в дерево
  78.  
  79. cout << "введите количество элементов ";
  80. cin >> n; //Вводим количество элементов
  81.  
  82. head1 = create();
  83. cout << head1 << endl;
  84. for (int i = 0; i<n; ++i)
  85. {
  86. cout << "ведите число ";
  87. cin >> s; //Считываем элемент за элементом
  88.  
  89. Add(s, head1); //И каждый кладем в дерево
  90. }
  91. cout << "You tree" << endl;
  92. cout << head1 << endl;
  93. Print(head1, 0);
  94. cout << head1 << endl;
  95. cin >> n;
  96.  
  97.  
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement