USING C++ (NOT C) , GIVEN A HEADER FILE BELOW (MUST REMAIN UNCHANGED) WRITE FUNC
ID: 3607658 • Letter: U
Question
USING C++ (NOT C) , GIVEN A HEADER FILE BELOW (MUST REMAIN UNCHANGED) WRITE FUNCTIONS WHICH IMPLEMENT A BINARY SEARCH TREE CLASS
#ifndef BST_H_
#define BST_H_
#include <cstddef>
#include <string>
#include <assert.h>
using namespace std;
template<typename bstdata>
class BST {
private:
struct Node {
bstdata data;
Node* leftchild;
Node* rightchild;
Node(bstdata newdata){
data = newdata;
leftchild = NULL;
rightchild = NULL;
}
};
Node* root;
/**Private helper functions*/
void insertNode(Node* root, bstdata data);
//private helper function for insert
//recursively inserts a value into the BST
void inOrderPrint(ostream& out, Node* root) const;
//private helper function for inOrderPrint
//recursively prints tree values in order from smallest to largest
void preOrderPrint(ostream& out, Node* root) const;
//private helper function for preOrderPrint
//recursively prints tree values in pre order
void postOrderPrint(ostream& out, Node* root) const;
//private helper function for postOrderPrint
//recursively prints tree values in post order
void copyNode(Node* copy) const;
//recursive helper function to the copy constructor
void freeNode(Node* root);
//private helper function for the destructor
//recursively frees the memory in the BST
bool searchNode(Node* root, bstdata data);
//recursive helper function to search
//returns whether the value is found in the tree
bstdata minimum(Node* root) const;
//recursive helper function to minimum
//returns the minimum value in the tree
bstdata maximum(Node* root) const;
//recursive helper function to maximum
//returns the maximum value in the tree
Node* deleteNode(Node* root, bstdata data);
//recursive helper function to remove
//removes data from the tree
void getSize(Node* root, int& size) const;
//recursive helper function to the size function
//calculates the size of the tree
//stores the result in size
int getHeight(Node* root) const;
//recursive helper function to the height function
//returns the height of the tree
public:
/**constructors and destructor*/
BST();
//Instantiates a new BST
BST(const BST &bst);
//copy constructor
~BST();
//deallocates the tree memory
/**access functions*/
bstdata minimum() const;
//returns the minimum value in the BST
//pre: !empty()
bstdata maximum() const;
//returns the maximum value in the BST
//pre: !empty()
bool isEmpty() const;
//determines whether the BST is empty
int getSize() const;
//returns the size of the tree
bstdata getRoot() const;
//returns the value stored at the root of the BST
//pre: !isEmpty()
int getHeight() const;
//returns the height of the tree
bool search(bstdata data) const;
//returns whether the data is found in the tree
//pre: !isEmpty()
/**manipulation procedures*/
void insert(bstdata data);
//inserts new data into the BST
void remove(bstdata data);
//removes the specified value from the tree
//pre: data is located in the tree
//pre: !isEmpty()
/**additional functions*/
void inOrderPrint(ostream& out) const;
//calls the inOrderPrint function to print out the values
//stored in the BST
void preOrderPrint(ostream& out) const;
//calls the reOrderPrint function to print out the values
//stored in the BST
void postOrderPrint(ostream& out) const;
//calls the postOrderPrint function to print out the values
//stored in the BST
};
#endif /* BST_H_ */
Explanation / Answer
Hi ,
Insert, Deleate, Inorder,Pre Order, Post Order methods are completed
There is very small change in Header file . Please check (Delete Function)
I couldn't test because of less time. Please comment if you have any doubts
Header file :-
---------------------------
Source file :-
---------------------------
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.