The AVLTree class represents a linked-memory AVL Tree.  
 More...
#include "avltree.h"
template<class K, class V>
class AVLTree< K, V >
The AVLTree class represents a linked-memory AVL Tree. 
- Template Parameters
- 
  
    | K | the type of key stored in the tree |  | V | the type of value stored in the tree |  
 
◆ AVLTree() [1/2]
template<class K , class V > 
      
 
Constructor to create an empty tree. 
 
 
◆ AVLTree() [2/2]
template<class K , class V > 
      
 
Copy constructor. 
- Parameters
- 
  
  
 
 
◆ ~AVLTree()
template<class K , class V > 
      
 
Destructor; frees all nodes associated with this tree. 
 
 
◆ operator=()
template<class K , class V > 
      
 
Assignment operator. 
- Parameters
- 
  
  
- Returns
- A reference to the current tree 
 
 
◆ clear() [1/2]
template<class K , class V > 
      
 
Frees all nodes associated with this tree and sets it to be empty. 
 
 
◆ insert() [1/2]
template<class K , class V > 
      
        
          | void AVLTree< K, V >::insert | ( | const K & | key, | 
        
          |  |  | const V & | value | 
        
          |  | ) |  |  | 
      
 
Inserts a key and value into the AVLTree. 
- Parameters
- 
  
    | key | The key to insert |  | value | The value associated with the key |  
 
 
 
◆ remove() [1/2]
template<class K , class V > 
      
        
          | void AVLTree< K, V >::remove | ( | const K & | key | ) |  | 
      
 
Removes a key from the AVLTree. 
The key is assumed to exist in the tree. 
- Parameters
- 
  
  
 
 
◆ find() [1/2]
template<class K , class V > 
      
        
          | V AVLTree< K, V >::find | ( | const K & | key | ) | const | 
      
 
Finds an element in the AVL tree. 
- Parameters
- 
  
    | key | The element to search for |  
 
- Returns
- The value stored for that key 
 
 
◆ print()
template<class K , class V > 
      
        
          | void AVLTree< K, V >::print | ( | ostream & | out = cout | ) | const | 
      
 
Prints the AVLTree to a stream. 
- Parameters
- 
  
    | out | The stream to print to (default is stdout) |  
 
 
 
◆ setOutput()
template<class K , class V > 
      
        
          | void AVLTree< K, V >::setOutput | ( | ostream & | newOut | ) |  | 
      
 
This function is used for grading. 
- Parameters
- 
  
    | newOut | The stream to print to |  
 
 
 
◆ insert() [2/2]
template<class K , class V > 
  
  | 
        
          | void AVLTree< K, V >::insert | ( | Node *& | node, |  
          |  |  | const K & | key, |  
          |  |  | const V & | value |  
          |  | ) |  |  |  | private | 
 
Private helper function for the public insert function. 
- Parameters
- 
  
    | node | The current node in the recursion |  | key | The key to insert |  | value | The value associated with the key |  
 
 
 
◆ remove() [2/2]
template<class K , class V > 
  
  | 
        
          | void AVLTree< K, V >::remove | ( | Node *& | node, |  
          |  |  | const K & | key |  
          |  | ) |  |  |  | private | 
 
Private helper function for the public remove function. 
- Parameters
- 
  
    | node | The current node in the recursion |  | key | The key to remove |  
 
 
 
◆ find() [2/2]
template<class K , class V > 
  
  | 
        
          | V AVLTree< K, V >::find | ( | Node * | node, |  
          |  |  | const K & | key |  
          |  | ) |  | const |  | private | 
 
Finds a value (by key) in the AVL tree. 
- Parameters
- 
  
    | node | The node to search from (current subroot) |  | key | The key to search for |  
 
- Returns
- The value stored for that key 
 
 
◆ rotateRight()
template<class K , class V > 
 
Rotate the tree right (there is an imbalance on the left side). 
- Parameters
- 
  
  
 
 
◆ rotateLeft()
template<class K , class V > 
 
Rotates the tree left (there is an imbalance on the right side). 
- Parameters
- 
  
  
 
 
◆ rotateRightLeft()
template<class K , class V > 
 
A right-left rotation. 
This function should simply call rotateRight and rotateLeft. 
- Parameters
- 
  
  
 
 
◆ rotateLeftRight()
template<class K , class V > 
 
A left-right rotation. 
This function should simply call rotateLeft and rotateRight. 
- Parameters
- 
  
  
 
 
◆ rebalance()
template<class K , class V > 
 
Rebalance a node by performing rotations. 
You can assume that node->left and node->right are both balanced. Even if no rotations are required, you should update the node's height. 
- Parameters
- 
  
  
 
 
◆ heightOrNeg1()
template<class K , class V > 
  
  | 
        
          | int AVLTree< K, V >::heightOrNeg1 | ( | const Node * | node | ) | const |  | private | 
 
- Parameters
- 
  
    | node | The node's height to check |  
 
- Returns
- The height of the node if it's non-NULLor -1 if it isNULL
 
 
◆ swap()
template<class K , class V > 
 
Swap the keys and values of two nodes. 
- Parameters
- 
  
    | first | The first node to swap |  | second | The node to swap with |  
 
 
 
◆ copy()
template<class K , class V > 
 
 
◆ clear() [2/2]
template<class K , class V > 
 
Private helper function for clear that clears beneath the parameter node. 
- Parameters
- 
  
    | subRoot | The current node in the recursion |  
 
 
 
◆ root
template<class K , class V > 
 
 
◆ _out
template<class K , class V > 
 
This variable is used for grading. 
 
 
The documentation for this class was generated from the following files: