//brian jahns
//cs252 1999
//binary tree .h file
#ifndef Bintree_h
#define Bintree_h
template <class T>
struct Bnode{
Bnode(T, Bnode<T>*, Bnode<T>*);
T data;
Bnode<T>* lchild;
Bnode<T>* rchild;
};
template <class T>
class BinTree{
public:
BinTree();
BinTree(const BinTree&);
~BinTree();
bool IsEmpty();
void PreOrder() const;
void InOrder() const;
void PostOrder() const;
protected:
Bnode<T>* root;
void PreOrderHelper(Bnode<T>*) const;
void InOrderHelper(Bnode<T>*) const;
void PostOrderHelper(Bnode<T>*) const;
void DelTree(Bnode<T>*&);
void CopyTree(Bnode<T>*, Bnode<T>*&);
};
#endif