Assignment 9 Solutions
Solution binary tree functions
/*******************************************************************
* Name: Brenda Student
* Date: 4/28/14
* Course: CSCI 132 Section 01
* Assignment: Assignment 9
* Instructor: Royden
* Program: binary_tree.cc
* Purpose: Implements the functions in the Binary_tree class
***************************************************************************/
template <class Entry>
int Binary_tree<Entry> :: size() const
/* Post: Returns the number of nodes in the tree
Uses: The function recursive_size */
{
return recursive_size(root);
}
template <class Entry>
int Binary_tree<Entry> :: recursive_size(Binary_node<Entry> *sub_root) const
/* Post: Returns the number of nodes in the tree or subtree pointed to by sub_root*/
{
if (sub_root == NULL) {
return 0;
} else {
return 1 + recursive_size(sub_root -> left) + recursive_size(sub_root -> right);
}
}
template <class Entry>
void Binary_tree<Entry> :: clear( )
/* Post: All entries of the binary tree are removed. */
{
recursive_clear(root);
}
template <class Entry>
void Binary_tree<Entry> :: recursive_clear(Binary_node<Entry> * &sub_root)
/* Post: The subtree rooted at sub_root is cleared. */
{
Binary_node<Entry> *temp = sub_root;
if (sub_root == NULL) return;
recursive_clear(sub_root->left);
recursive_clear(sub_root->right);
sub_root = NULL;
delete temp;
}
Home | | Syllabus | | Assignments | | Lecture Notes