Advertisement
Guest User

template + recursion

a guest
Dec 7th, 2012
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.86 KB | None | 0 0
  1. template <typename Data>
  2. class AVLTree {
  3. public:
  4.     class Node;
  5. private:
  6.     typename AVLTree<Data>::Node* root;
  7.     int size;
  8. public:
  9.     AVLTree();
  10.     ~AVLTree();
  11.     bool find(Data& data) const;
  12.     AVLStatus add(Data& data);
  13.     AVLStatus remove(Data& data);
  14.     int getSize();
  15.     Data AVLgetNext(Data data);
  16.     Data AVLgetPrev(Data data);
  17.     void printPreOrder() const;
  18.     void printInOrder() const;
  19.     void printPostOrder() const;
  20. };
  21.  
  22. template <typename Data>
  23. void destroyTree(typename AVLTree<Data>::Node* element) {
  24.     if(!element) {
  25.         return;
  26.     }
  27.     destroyTree<Data>(element->getLeft());
  28.     destroyTree<Data>(element->getRight());
  29.     delete element;
  30. }
  31.  
  32. template <typename Data>
  33. AVLTree<Data>::~AVLTree() {
  34.     destroyTree<Data>(root);
  35.     root = 0;
  36. }
  37.  
  38. and I call it from here:
  39.  
  40. using namespace Data_Structures;
  41.  
  42. int main() {
  43.     AVLTree<int> test = AVLTree<int>();
  44.     return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement