Untitled

 avatar
unknown
plain_text
4 years ago
724 B
5
Indexable
#ifndef BINARYTREE_H
#define BINARYTREE_H
using namespace std;

template<class T>
struct NodeType {
    T key;
    NodeType<T> *left;
    NodeType<T> *right;
};

template<class T>
class BinaryTree {
public:
    BinaryTree();
    ~BinaryTree();
    void freeNodes(NodeType<T>* &tree);
    void insert(T &key);
    void insertNode(NodeType<T>* &tree, T &key);
    void deleteItem(T &key);
    void retrieve(NodeType<T>* &tree, T &item, bool &found) const;
    void getPredecessor(NodeType<T>* &tree, T &item);
    void deleteNode(NodeType<T>* &tree, T &item);
    void preOrder() const;
    void inOrder() const;
    void postOrder() const;
    int getLength() const;
private:
    NodeType<T> *root;
    int length;
};

#endif
Editor is loading...