Advertisement
Guest User

Untitled

a guest
Jun 26th, 2019
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. #include <iostream>
  2. #include<math.h>
  3.  
  4. using namespace std;
  5.  
  6.  
  7. struct node {
  8. long value = 0;
  9. node *right = nullptr;
  10. node *left = nullptr;
  11. };
  12.  
  13. struct tree {
  14. node *root = nullptr;
  15. };
  16.  
  17.  
  18. void insert(node *root, node *node1) {
  19. if (root->value > node1->value) {
  20. if (root->left == nullptr) {
  21. //cout << node1->value << " in" << endl;
  22. root->left = node1;
  23. } else {
  24. //cout << node1->value << " right" << endl;
  25. insert(root->left, node1);
  26. }
  27. } else {
  28. if (root->right == nullptr) {
  29. //cout << node1->value << " in" << endl;
  30. root->right = node1;
  31. } else {
  32. //cout << node1->value << " left" << endl;
  33. insert(root->right, node1);
  34. }
  35. }
  36. }
  37.  
  38. void insert_tree(tree *tree1) {
  39. long in_key;
  40. cin >> in_key;
  41.  
  42. node *node1 = (node *) malloc(sizeof(node));
  43. node1->value = in_key;
  44. if (tree1->root == nullptr) {
  45. tree1->root = node1;
  46. } else {
  47. insert(tree1->root, node1);
  48. }
  49. }
  50.  
  51. void print_tree_mid(node *node1) {
  52. if(node1->left != nullptr)print_tree_mid(node1->left);
  53. cout << " " << node1->value;
  54. if(node1->right != nullptr)print_tree_mid(node1->right);
  55. }
  56.  
  57. void print_tree_pre(node *node1) {
  58. cout << " " << node1->value;
  59. if(node1->left != nullptr)print_tree_pre(node1->left);
  60. if(node1->right != nullptr)print_tree_pre(node1->right);
  61. }
  62.  
  63. void print_tree(tree *tree1){
  64. print_tree_mid(tree1->root);
  65. cout << endl;
  66. print_tree_pre(tree1->root);
  67. cout << endl;
  68. }
  69.  
  70. int main() {
  71. long m;
  72. string PRINT = "print", INSERT = "insert", s;
  73. cin >> m;
  74. tree *tree1 = (struct tree *) malloc(sizeof(tree));
  75. for (int i = 0; i < m; i++) {
  76. cin >> s;
  77. if (s == INSERT) insert_tree(tree1);
  78. else print_tree(tree1);
  79. }
  80. return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement