Update example of red-black and binary tree algorithms

+ Use copy-swap idiom for assignment operators
+ Update and organize CMakeLists subdirectories for algorithm examples
This commit is contained in:
2021-06-09 10:16:24 -04:00
parent 202953de49
commit a8b6627135
6 changed files with 51 additions and 60 deletions

View File

@@ -30,13 +30,13 @@ public:
RedBlackNode *lt, RedBlackNode *rt, RedBlackNode *p)
:element(el), color(c), left(lt), right(rt), parent(p) {};
// Ctor for copying a node and any downstream nodes
explicit RedBlackNode(RedBlackNode * toCopy);
RedBlackNode(const RedBlackNode &toCopy);
};
static RedBlackNode *nil;
RedBlackTree() : root(nil) {};
RedBlackTree(const RedBlackTree &rhs);;
RedBlackTree& operator=(const RedBlackTree& rhs);
RedBlackTree& operator=(RedBlackTree rhs);
~RedBlackTree() { makeEmpty(root);};
// Inlined functions provide less verbose interface for using the RBT
inline RedBlackNode * getRoot() const { return root;}