Sanlover

Untitled

Dec 2nd, 2020
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. #include "Tree.h"
  2.  
  3. Tree::Tree()
  4. {
  5. head = nullptr;
  6. }
  7.  
  8. void
  9. Tree::preOrder(Node* node)
  10. {
  11. if (node == nullptr)
  12. return;
  13. std::cout << (node->value) << ' ';
  14. preOrder(node->left);
  15. preOrder(node->right);
  16. }
  17.  
  18. void
  19. Tree::inOrder(Node* node)
  20. {
  21. if (node == nullptr)
  22. return;
  23. preOrder(node->left);
  24. std::cout << (node->value) << ' ';
  25. preOrder(node->right);
  26. }
  27.  
  28. void
  29. Tree::postOrder(Node* node)
  30. {
  31. if (node == nullptr)
  32. return;
  33. preOrder(node->left);
  34. preOrder(node->right);
  35. std::cout << (node->value) << ' ';
  36. }
  37.  
  38. void Tree::print(const size_t& sortId)
  39. {
  40. if (sortId == 1)
  41. preOrder(head);
  42.  
  43. else if (sortId == 2)
  44. inOrder(head);
  45.  
  46. else if (sortId == 3)
  47. postOrder(head);
  48. else
  49. std::cout << "Wrong Sort ID" << std::endl;
  50. }
  51.  
  52. void
  53. Tree::addMethod(Node*& node, const int& value)
  54. {
  55. if (node == nullptr)
  56. node = new Node(value);
  57. else if (value > node->value)
  58. addMethod(node->right, value);
  59. else
  60. addMethod(node->left, value);
  61. }
  62.  
  63. void
  64. Tree::deleteMethod(Node* node)
  65. {
  66. if (node->left != nullptr)
  67. deleteMethod(node->left);
  68.  
  69. if (node->right != nullptr)
  70. deleteMethod(node->right);
  71. delete node;
  72. }
  73.  
  74. void Tree::eraseMethod(const int& value)
  75. {
  76. }
  77.  
  78. int
  79. Tree::heightMethod(Node* node)
  80. {
  81. if (node == 0)
  82. return 0;
  83. int left, right;
  84. if (node->left != NULL)
  85. left = heightMethod(node->left);
  86. else
  87. left = -1;
  88. if (node->right != NULL)
  89. right = heightMethod(node->right);
  90. else
  91. right = -1;
  92. int max = left > right ? left : right;
  93. return max + 1;
  94. }
  95.  
  96. bool Tree::empty()
  97. {
  98. return head == nullptr;
  99. }
  100.  
  101. void Tree::clear()
  102. {
  103. deleteMethod(head);
  104. head = nullptr;
  105. }
  106.  
  107. int Tree::height()
  108. {
  109. return heightMethod(head);
  110. }
  111.  
  112. void Tree::add(const int& value)
  113. {
  114. addMethod(head, value);
  115. }
  116.  
Add Comment
Please, Sign In to add comment