//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 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 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; }