Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Hey everyone, if anyone could help me real quick with this question that'd be great! thanks :) C++ EVERYONE!!! Below is the Cpp, file to
Hey everyone, if anyone could help me real quick with this question that'd be great! thanks :) C++ EVERYONE!!!
Below is the Cpp, file to copy, (Paste formatted into your respetive ide's (I will repost if i have to, to get all parts answered
#include#include #include #include #include using namespace std; // global variable for tree operations // use to control tree maintenance operations enum Mode { simple, randomised, avl } mode; // tree type // returns size of tree // change to stored attribute if efficiency is important template int size(N* root) { if (root == 0) return 0; return 1 + size(root->left) + size(root->right); } // returns depth of tree // change to stored attribute if efficiency is important template int depth(N* root) { if (root == 0) return 0; return 1 + max(depth(root->left), depth(root->right)); } // returns true if tree is valid // also checks size for randomised trees and depth for avl trees template bool valid(N* root) { if (root == 0) return true; return valid(root->left) && valid(root->right) && (root->left == 0 || root->left->key == root->key || root->left->key key) && (root->right == 0 || root->key == root->right->key || root->key right->key) && (mode != randomised || size(root) == 1 + size(root->left) + size(root->right)) && (mode != avl || depth(root) == 1 + max(depth(root->left), depth(root->right))) ; } // displays tree as a single-line with parens to indicate structure // only really useful for small trees template void print(N* root, ostream& out, bool verbose) { if (root != 0) { out left, out, verbose); out key; if (verbose) { out value; if (mode == randomised) out right, out, verbose); out void explode (N* root, ostream& out, bool verbose, string leader = "", string before = " ", string after = " ") { if (root != 0) { explode(root->right, out, verbose, leader + before + " ", " ", "|"); out key; if (verbose) { out value; if (mode == randomised) out left, out, verbose, leader + after + " ", "|", " "); } } /* * Binary Search Tree template * Key is key type (must define " class BST { struct Node { Key key; Value value; Node* left; Node* right; }; public: BST() { root = 0; } // retuns true (and modifies value) if given key found bool search(const Key& key, Value& value) { // add code here return false; } // inserts given key and value void insert(const Key& key, const Value& value) { // add code here } // removes first-found match (if any) to given key void remove(const Key& key) { // add code here } // ------- tree information (for debugging) bool valid() { return ::valid(root); } int size() { return ::size(root); } int depth() { return ::depth(root); } void print(ostream& out, bool verbose) { ::print(root, out, verbose); cout tree; string command; while (getline(cin, command)) { char function = 'i'; int limit = 100; char sequence = '='; int count = 1; stringstream tokens(command); if (tokens) tokens >> function; if (tokens) tokens >> limit; if (tokens) tokens >> sequence; if (tokens) tokens >> count; int found = 0; int total = 0; for (int i = 0; i Task The program searching .cpp contains an incomplete class definition for a binary search tree, defined according to the following template. template > When you're ready to submit your wor use handin searching Background The main program interprets a simple command language (read from standard input) for inserting removing, and searching the tree. Each command takes the following form function limit sequence count The function field can be insert), r (remove), f (find), or t (total). The find and tota functions report the number of nodes found or the total of the values found on standard output. Th sequence field can be (random), (ascending), (descending), or (fixed). For example i 100 1000 insert 1000 keys K 100 in ascending sequence r 100 100 remove 100 random keys 100 f 100 100000 search for 100000 keys 100 i 123 insert key 123 seq defaults to and count to 1) t 100 10000 total values of 1000 searches with rand keys 100 Several commands are available to help debug your code print current tree (display compact form) explode current tree (display multi-line form) report depth of tree report size of tree
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started