// CMSC 341 - Spring 2020 - Project 3 #include "BST.h" // Constructor for the BNode nested class BST::BNode::BNode(string ch, int rank, int height, int size) { _data = ch; _key = rank; _height = height; _size = size; _right = nullptr; _left = nullptr; } // Constructor for the BST class; requires a balance function BST::BST(balfn_t imbalanced) { _root = nullptr; _imbalanced = imbalanced; } BST::~BST(){ // TBD } BST::BST(const BST& rhs) { // TBD } BST& BST::operator=(const BST& rhs){ // TBD return *this; } // Insert a (character, rank) pair bool BST::insert(string ch, int rank) { // TBD return true; } int BST::size() const { return ( _root == nullptr ? 0 : _root->_size ); } int BST::height() const { return ( _root == nullptr ? -1 : _root->_height ); } void BST::dump(bool verbose) const { // TBD } // A sample balance function. This implements the height-balanced // property from AVL trees. // bool imbalfn(int leftHeight, int rightHeight, int leftSize, int rightSize) { // return (leftHeight > rightHeight + 1) || (rightHeight > leftHeight + 1); // } // A sample main to exercise BST separately. This is *NOT* a thorough // test program // int main() { // BST bst( imbalfn ); // bst.insert("A", 5); // bst.insert("B", 10); // bst.insert("C", 15); // bst.insert("D", 20); // bst.insert("E", 30); // bst.insert("F", 40); // bst.insert("G", 55); // bst.insert("H", 60); // bst.insert("I", 65); // bst.insert("J", 70); // bst.insert("K", 75); // bst.insert("L", 80); // bst.dump(); // bst.dump(true); // cout << "size = " << bst.size() << endl; // cout << "height = " << bst.height() << endl; // return 0; // }