Improved documentation for BST
This commit is contained in:
parent
cd2e1470ca
commit
4882cd51fa
@ -40,6 +40,7 @@ public:
|
||||
bool search(const T& target, T& returnedItem) const;
|
||||
};
|
||||
|
||||
// Caller function for private _insert() method
|
||||
template<typename T>
|
||||
void BinarySearchTree<T>::insert(const T& newEntry)
|
||||
{
|
||||
@ -48,6 +49,7 @@ void BinarySearchTree<T>::insert(const T& newEntry)
|
||||
this->size++;
|
||||
}
|
||||
|
||||
// Inserts and sorts a new node into BST
|
||||
template<typename T>
|
||||
BinaryTreeNode<T>* BinarySearchTree<T>::_insert(BinaryTreeNode<T>* nodePtr, BinaryTreeNode<T>* newNodePtr) {
|
||||
BinaryTreeNode<T>* pWalk = nodePtr, * parent = nullptr;
|
||||
@ -74,6 +76,7 @@ BinaryTreeNode<T>* BinarySearchTree<T>::_insert(BinaryTreeNode<T>* nodePtr, Bina
|
||||
return nodePtr;
|
||||
}
|
||||
|
||||
// Caller function for private _remove() function
|
||||
template<typename T>
|
||||
bool BinarySearchTree<T>::remove(const T& item) {
|
||||
BinaryTreeNode<T>* removed = _remove(this->root, item);
|
||||
@ -84,6 +87,7 @@ bool BinarySearchTree<T>::remove(const T& item) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Removes a node from BST
|
||||
template<typename T>
|
||||
BinaryTreeNode<T>* BinarySearchTree<T>::_remove(BinaryTreeNode<T>* nodePtr, const T& target) {
|
||||
BinaryTreeNode<T>* parNode = nullptr;
|
||||
@ -128,6 +132,7 @@ BinaryTreeNode<T>* BinarySearchTree<T>::_remove(BinaryTreeNode<T>* nodePtr, cons
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// Caller function for private _search() function
|
||||
template<typename T>
|
||||
bool BinarySearchTree<T>::search(const T& target, T& returnedItem) const
|
||||
{
|
||||
@ -142,6 +147,7 @@ bool BinarySearchTree<T>::search(const T& target, T& returnedItem) const
|
||||
return false;
|
||||
}
|
||||
|
||||
// Searches for a node and returns it if found.
|
||||
template<typename T>
|
||||
BinaryTreeNode<T>* BinarySearchTree<T>::_search(BinaryTreeNode<T>* nodePtr, const T& target) const
|
||||
{
|
||||
|
10
BinaryTree.h
10
BinaryTree.h
@ -40,14 +40,19 @@ public:
|
||||
|
||||
[[nodiscard]] int getSize() const { return size; };
|
||||
|
||||
// Caller function for private destroyTree() method
|
||||
void clear() { destroyTree(root); root = 0; size = 0; }
|
||||
|
||||
// Caller function for private _preorder() method
|
||||
void preOrder(void visit(const T&)) const { _preorder(visit, root); }
|
||||
|
||||
// Caller function for private _inorder() method
|
||||
void inOrder(std::function<void(const T&)> visit) const { _inorder(visit, root); }
|
||||
|
||||
// Caller function for private _postorder() method
|
||||
void postOrder(void visit(const T&)) const { _postorder(visit, root); }
|
||||
|
||||
// Caller function for private _printTree() method
|
||||
void printTree(void visit(const T&, int)) const { _printTree(visit, root, 1); }
|
||||
|
||||
// abstract functions to be implemented by derived class
|
||||
@ -70,6 +75,7 @@ private:
|
||||
|
||||
};
|
||||
|
||||
// Recursively deletes every node in the tree
|
||||
template<class T>
|
||||
void BinaryTree<T>::destroyTree(BinaryTreeNode<T>* nodePtr)
|
||||
{
|
||||
@ -81,6 +87,7 @@ void BinaryTree<T>::destroyTree(BinaryTreeNode<T>* nodePtr)
|
||||
}
|
||||
}
|
||||
|
||||
// Traverses through tree in preorder
|
||||
template<typename T>
|
||||
void BinaryTree<T>::_preorder(void visit(const T&), BinaryTreeNode<T>* nodePtr) const
|
||||
{
|
||||
@ -92,6 +99,7 @@ void BinaryTree<T>::_preorder(void visit(const T&), BinaryTreeNode<T>* nodePtr)
|
||||
}
|
||||
}
|
||||
|
||||
// Traverses through tree in inorder
|
||||
template<typename T>
|
||||
void BinaryTree<T>::_inorder(std::function<void(const T&)> visit, BinaryTreeNode<T>* nodePtr) const
|
||||
{
|
||||
@ -104,6 +112,7 @@ void BinaryTree<T>::_inorder(std::function<void(const T&)> visit, BinaryTreeNode
|
||||
}
|
||||
}
|
||||
|
||||
// Traverses through tree in postorder
|
||||
template<typename T>
|
||||
void BinaryTree<T>::_postorder(void visit(const T&), BinaryTreeNode<T>* nodePtr) const
|
||||
{
|
||||
@ -115,6 +124,7 @@ void BinaryTree<T>::_postorder(void visit(const T&), BinaryTreeNode<T>* nodePtr)
|
||||
}
|
||||
}
|
||||
|
||||
// Prints tree using function pointer
|
||||
template<class T>
|
||||
void BinaryTree<T>::_printTree(void visit(const T&, int), BinaryTreeNode<T>* nodePtr, int level) const
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user