binarytree.h
来自「二叉树算法,如何构造二叉树以及对二叉树的操作」· C头文件 代码 · 共 75 行
H
75 行
#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 + =
减小字号Ctrl + -
显示快捷键?