62 lines
1.9 KiB
C++
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;
|
|
} |