Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template <typename Data>
- class AVLTree {
- public:
- class Node;
- private:
- typename AVLTree<Data>::Node* root;
- int size;
- public:
- AVLTree();
- ~AVLTree();
- bool find(Data& data) const;
- AVLStatus add(Data& data);
- AVLStatus remove(Data& data);
- int getSize();
- Data AVLgetNext(Data data);
- Data AVLgetPrev(Data data);
- void printPreOrder() const;
- void printInOrder() const;
- void printPostOrder() const;
- };
- template <typename Data>
- void destroyTree(typename AVLTree<Data>::Node* element) {
- if(!element) {
- return;
- }
- destroyTree<Data>(element->getLeft());
- destroyTree<Data>(element->getRight());
- delete element;
- }
- template <typename Data>
- AVLTree<Data>::~AVLTree() {
- destroyTree<Data>(root);
- root = 0;
- }
- and I call it from here:
- using namespace Data_Structures;
- int main() {
- AVLTree<int> test = AVLTree<int>();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement