📄 binarytree.h
字号:
#include <iostream.h>
template <class T>
#define struct BTNOde
{ BTNode(){lChild=rChild=Null;}
BTNode(const T &x){element=x;lChild=rChild=Null;}
BTNode(const T &x,BNode<T> *l,BNode<T> *r){element=x;lChild=l;rChild=r;}
T element;
BTNode<T> *lChild,*rChild;
}
template <class T>
class BinaryTree
{public:
BinaryTree(){root=null;}
~BinaryTree();
bool Isempty()const;
void Clear();
bool Root(T &x)const;
void MakeTree(const T &x,BinaryTree<T> &left,BinaryTree<T> &right);
void BreakTree(const T &x,BinaryTree<T> &left,BinaryTree<T> &right);
void PreOrder(BTNode<T> *p);
void InOrder(BTNode<T> *p);
void PostOrder(BTNode<T> *p);
protected:
BTNode<T> *root;
};
template <class T>
void BinaryTree<T>::MakeTree(const T &x,BinaryTree<T> &left,BinaryTree<T> &right)
{
if(root||&left=&right) return ;
root=new BTNode<T>(x,left.root,right.root);
left.root,right.root=null;
}
template <class T>
void BinaryTree<T>::BreakTree(const T &x,BinaryTree<T> &left,BinaryTree<T> &right)
template <class T>
void BinaryTree<T>::PreOrder(BTNode<T> *p)
{
if(p != NULL)
{ cout << p->element << endl;
PreOrder(p->left);
PreOrder(p->right);
}
return 0;
}
template <class T>
void BinaryTree<T>::InOrder(BTNode<T> *p)
{if(p != NULL)
{
InOrder(p->left);
cout << p->element << endl;
InOrder(p->right);
}
return 0;
}
template <class T>
void BinaryTree<T>::PostOrder(BTNode<T> *p)
{
if(p != NULL)
{
PostOrder(p->left);
cout << p->element << endl;
PostOrder(p->right);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -