Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "BST.h"
- using namespace std;
- int main() {
- unsigned short int howmanyentries = 0, howmanycommands = 0, howmanysearches = 0;
- char command;
- unsigned int value;
- BST tree;
- cin >> howmanyentries;
- unsigned int * tab = new unsigned int[howmanyentries];
- for (unsigned short int i = 0; i < howmanyentries; i++) {
- cin >> value;
- if (value != 1) {
- tab[i] = value;
- tree.root = tree.insertNode(tree.root, value, i);
- }
- else{
- tab[i] = value;
- }
- }
- cin >> howmanycommands;
- for (unsigned short int i = 0; i < howmanycommands; i++) {
- cin >> howmanysearches;
- cin >> command;
- for (unsigned short int k = 0; k < howmanysearches; k++) {
- if (command == 's') {
- if (tree.root == nullptr) break;
- tree.temp = tree.findMin(tree.root);
- unsigned short int index = tree.temp->index;
- unsigned int collatzvalue = tree.collatz(tree.temp->value);
- switch (collatzvalue) {
- case 0:
- tree.delMin(tree.root);
- tab[index] = 0;
- break;
- case 1:
- tree.delMin(tree.root);
- tab[index] = 1;
- break;
- default:
- tree.delMin(tree.root);
- tab[index] = collatzvalue;
- tree.root = tree.insertNode(tree.root, collatzvalue, index);
- break;
- }
- }
- if (command == 'l') {
- if (tree.root == nullptr) break;
- tree.temp = tree.findMax(tree.root);
- unsigned short int index = tree.temp->index;
- unsigned int collatzvalue = tree.collatz(tree.temp->value);
- switch (collatzvalue) {
- case 0:
- tree.delMax(tree.root);
- tab[index] = 0;
- break;
- case 1:
- tree.delMax(tree.root);
- tab[index] = 1;
- break;
- default:
- tree.delMax(tree.root);
- tab[index] = collatzvalue;
- tree.root = tree.insertNode(tree.root, collatzvalue, index);
- break;
- }
- }
- }
- }
- for (unsigned short int j = 0; j < howmanyentries; j++) {
- if (tab[j] == 0) cout << "m ";
- else cout << tab[j] << " ";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement