- 1 -
二叉树的基本操作
#include <iostream>
using namespace std;
template <class T>
struct BinTreeNode
{
T data;
BinTreeNode<T> *leftChild,*rightChild;
};
template <class T>
class BinaryTree
{
public:
BinaryTree():root(NULL) {}
void Creat0();
void Meum();
void preOrder() {preOrder(root);}
void inOrder() {inOrder(root);}
void postOrder() {postOrder(root);}
int Height() {return Height(root);}
int Size(){return Size(root);}
void CreateBinTree(){CreateBinTree(root);}
protected:
BinTreeNode<T> * root;
BinTreeNode<T> * Creat();
void preOrder(BinTreeNode<T> * subTree);
void inOrder(BinTreeNode<T> *subTree);
void postOrder(BinTreeNode<T> *subTree);
int Height(BinTreeNode<T> * subTree);
int Size(BinTreeNode<T> * subTree);
void CreateBinTree(BinTreeNode<T> * subTree);
};
template<class T>
void BinaryTree<T>::Creat0()
{root=Creat();};
template <class T>
BinTreeNode<T> * BinaryTree<T>::Creat()
{