树的ADT(抽象数据类型)
template <class T>
class Tree{
public:
Tree(); // 拷贝构造函数
virtual ~Tree(); // 析构函数
TreeNode<T>* getRoot(); // 返回树中的根结点
void CreateRoot(const T& rootValue); // 创造值为rootValue的根结点
bool isEmpty(); // 判断是否为空树
TreeNode<T>* Parent(TreeNode<T> *current); // 返回父结点
TreeNode<T>* PrevSibling(TreeNode<T> *current); // 返回前一个兄弟
void DeleteSubTree(TreeNode<T> *subroot); // 删除以subroot子树
void RootFirstTraverse(TreeNode<T> *root); // 先根深度优先遍历树
void RootLastTraverse(TreeNode<T> *root); // 后根深度优先遍历树
void WidthTraverse(TreeNode<T> *root); // 广度优先遍历树
};
树结点的ADT
template <class T&g