Advertisement
Guest User

Untitled

a guest
May 22nd, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. #include "BST.h"
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6.  
  7.  
  8.  
  9. unsigned short int howmanyentries = 0, howmanycommands = 0, howmanysearches = 0;
  10. char command;
  11. unsigned int value;
  12. BST tree;
  13.  
  14. cin >> howmanyentries;
  15.  
  16. unsigned int * tab = new unsigned int[howmanyentries];
  17.  
  18. for (unsigned short int i = 0; i < howmanyentries; i++) {
  19.  
  20. cin >> value;
  21.  
  22. if (value != 1) {
  23. tab[i] = value;
  24. tree.root = tree.insertNode(tree.root, value, i);
  25. }
  26. else{
  27. tab[i] = value;
  28. }
  29. }
  30.  
  31.  
  32.  
  33. cin >> howmanycommands;
  34.  
  35.  
  36.  
  37. for (unsigned short int i = 0; i < howmanycommands; i++) {
  38.  
  39. cin >> howmanysearches;
  40. cin >> command;
  41.  
  42. for (unsigned short int k = 0; k < howmanysearches; k++) {
  43.  
  44. if (command == 's') {
  45.  
  46. if (tree.root == nullptr) break;
  47. tree.temp = tree.findMin(tree.root);
  48. unsigned short int index = tree.temp->index;
  49. unsigned int collatzvalue = tree.collatz(tree.temp->value);
  50.  
  51. switch (collatzvalue) {
  52.  
  53. case 0:
  54. tree.delMin(tree.root);
  55. tab[index] = 0;
  56. break;
  57.  
  58. case 1:
  59. tree.delMin(tree.root);
  60. tab[index] = 1;
  61. break;
  62.  
  63. default:
  64. tree.delMin(tree.root);
  65. tab[index] = collatzvalue;
  66. tree.root = tree.insertNode(tree.root, collatzvalue, index);
  67. break;
  68.  
  69. }
  70. }
  71.  
  72. if (command == 'l') {
  73.  
  74. if (tree.root == nullptr) break;
  75. tree.temp = tree.findMax(tree.root);
  76. unsigned short int index = tree.temp->index;
  77. unsigned int collatzvalue = tree.collatz(tree.temp->value);
  78.  
  79. switch (collatzvalue) {
  80.  
  81. case 0:
  82. tree.delMax(tree.root);
  83. tab[index] = 0;
  84. break;
  85.  
  86. case 1:
  87. tree.delMax(tree.root);
  88. tab[index] = 1;
  89. break;
  90.  
  91. default:
  92. tree.delMax(tree.root);
  93. tab[index] = collatzvalue;
  94. tree.root = tree.insertNode(tree.root, collatzvalue, index);
  95. break;
  96.  
  97. }
  98. }
  99. }
  100. }
  101.  
  102. for (unsigned short int j = 0; j < howmanyentries; j++) {
  103. if (tab[j] == 0) cout << "m ";
  104. else cout << tab[j] << " ";
  105. }
  106. return 0;
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement