为什么二叉树的几种遍历函数要这样声明,直接在把下面private:里面的函数放在public中,不就行了,为什么要多此一举多递归一次呢?难道只是为了调用的时候不传参?
template<class T>
class BiTree {
public:
BiTree();
~BiTree();
BiNode<T> *GetRoot(){return root;}//取根指针
void PutRoot(BiNode<T> *r){root = r;}//置根指针
void PreOrder(){PreOrder(root);}//先序遍历二叉树
void InOrder(){InOrder(root);}//后续遍历二叉树
void PostIorder(){PostIorder(root);}//后序遍历二叉树
void LevelOrder(){LevelOrder(root);}//层序遍历二叉树
private:
BiTree *root;
BiTree *Creat();
void Release(BiTree<T> *root);
void PreOrder(BiNode<T> *root);//先序遍历二叉树
void InOrder(BiNode<T> *root);//中序遍历二叉树
void PostIorder(BiNode<T> *root);//后序遍历二叉树
void LevelOrder(BiNode<T> *root);//层序遍历二叉树
};