Red-Black_Tree/src/main.cpp

62 lines
1.9 KiB
C++

//Homework 6 for the University of Tulsa's CS-7353 Analysis of Algorithms Course
//C++ code for a proof of concept of the working Red-Black Tree, also written in C++
//Professor: Dr. Schoenefeld, Spring 2022
//Noah Schrick - 1492657
#include "Red-Black.h"
int main(int argc, char *argv[])
{
std::vector<int> init_keys {41, 38, 31, 12, 19, 8};
RB tree = RB();
std::cout << "Inserting initial keys from Part a..." << std::endl;
for (int k : init_keys){
Node* newnode = new Node(k);
tree.ins(tree.get_root(), newnode);
}
std::cout << "After insertion:" << std::endl;
tree.display(tree.get_root(), nullptr, false);
std::cout << "" << std::endl;
std::cout << "Deleting 12:" << std::endl;
tree.del(tree.get_root(), 12);
tree.display(tree.get_root(), nullptr, false);
std::cout << "" << std::endl;
std::cout << "Inserting 32:" << std::endl;
Node* newnode = new Node(32);
tree.ins(tree.get_root(), newnode);
tree.display(tree.get_root(), nullptr, false);
std::cout << "" << std::endl;
std::cout << "Deleting 41:" << std::endl;
tree.del(tree.get_root(), 41);
tree.display(tree.get_root(), nullptr, false);
std::cout << "" << std::endl;
RB tree2 = RB();
std::vector<int> insert_new {834, 807, 512, 882, 127, 675, 75, 216, 822, 249, 114, 689,
625, 974, 221, 92, 374, 123, 838, 930, 654, 806, 234, 381};
std::cout << "Inserting initial keys from Part c..." << std::endl;
for (int k : insert_new){
Node* newnode = new Node(k);
tree2.ins(tree2.get_root(), newnode);
}
std::cout << "After insertion:" << std::endl;
tree2.display(tree2.get_root(), nullptr, false);
std::cout << "" << std::endl;
std::cout << "Deleting 127:" << std::endl;
tree2.del(tree2.get_root(), 127);
tree2.display(tree2.get_root(), nullptr, false);
std::cout << "" << std::endl;
std::cout << "Deleting 221:" << std::endl;
tree2.del(tree2.get_root(), 221);
tree2.display(tree2.get_root(), nullptr, false);
std::cout << "" << std::endl;
}