⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 binarytree.h

📁 二叉树算法,如何构造二叉树以及对二叉树的操作
💻 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 + -