[SOLVED] COEN 79 - HW5

30.00 $

Programming resource
Digital learning resource
Category:
✓ Practical programming resource
✓ Suitable for guided study and reference
✓ Tutor guidance available when needed

Description

 

Practice for Tree Data Structure, 

Each question is 3 pts.

 

1.  

 

1. Please complete the following implementation:

 

 

template < class Item >

2. binary_tree_node <Item>* tree_copy (const binary_tree_node <Item>* root_ptr)
 

 

 

 

 

 

 

 

 

 

• Using the previous implementation, complete the following function for the bag class given in Appendix 1:

 

1.  

template < class Item >

2. void bag <Item>::operator = (const bag<Item>& source)
3. // Header file used: bintree.h

 

  1. For the bag class defined in Appendix 1, please complete the following function:

 

  1. template < class Item >
  2. void bag<Item>::insert(const Item& entry)
  3. // Postcondition: A new copy of entry has been inserted into the bag.
  4. // Header file used: bintree.h
  1. Write a function to perform left-right rotation on the following AVL tree. The figure shows the steps. (Note: Please implement the function in two steps: (1) left rotation, (2) right rotation.)

parent

  1. template < class Item >
  2. binary_tree_node <Item>* left_right_rotation (binary_tree_node <Item>*& parent) {
  3. binary_tree_node <Item>* temp;
  4. Add the following numbers to an AVL tree. Please draw the final tree. 2, 4, 6, 8, 10, 12, 20, 18, 16, 14
  1. The following functions are available:

Also assume the following functions are available:

  • binary_tree_node<Item>* left_rotation (binary_tree_node<Item>*& parent)
  • binary_tree_node<Item>* right_rotation (binary_tree_node<Item>*& parent)
  • binary_tree_node<Item>* left_right_rotation (binary_tree_node<Item>*& parent)
  • binary_tree_node<Item>* right_left_rotation (binary_tree_node<Item>*& parent)

 

Complete the following function, which balances a tree rooted at temp.

 

  1. template < class Item >
  2. binary_tree_node<Item>* balance(binary_tree_node <Item>*& temp)
  3. Please implement the following function (recursively).

 

  1. template < class Item >
  2. void flip(binary_tree_node < Item > * root_ptr)
  3. // Precondition: root_ptr is the root pointer of a non-empty binary tree. // Postcondition: The tree is now the mirror image of its original value.

 

Example:

 

//          1                                 1

//         / \                               / \

//        2   3                             3   2

//       / \                                   / \

//      4   5                                 5   4

 

  1. template < class Item >
  2. void flip (binary_tree_node <Item>* root_pt
  3. Appendix 1: Bag class with binary search tree.

 

 

Resource details

Understand the Task Before You Use the Resource

Review the requirements, identify the programming concepts involved, study the implementation and test your understanding with your own examples and modifications.