📄 bitree_class.h
字号:
#include "BiTree.h"
template <class T>
class BiTree_class:public BiTreeNode<T>
{
private:
BiTreeNode<T>*root;
BiTreeNode<T>*current;
public:
BiTree_class( )
{
root=current=NULL;
}
void SetUP_BiTree( BiTreeNode<T>* &root);
void Set( );
void Delete_BiTree(BiTreeNode<T> *&s );
void PreOrderTree(BiTreeNode<T>*&t);
void InOrderTree(BiTreeNode<T>*&t);
void PostOrderTree(BiTreeNode<T>*&t);
int Depth(BiTreeNode<T>*&root);
BiTreeNode<T>*&Root( )
{
return root;
}
~BiTree_class( )
{
}
};
template<class T>
void BiTree_class<T>::SetUP_BiTree(BiTreeNode<T>*&root)
{
T data1,data2;
cout<<root->data<<" 's leftChild(if it has not the child input 0) :";
cin>>data1;
if(data1!=0)
{
root->Left()=new BiTreeNode<T>(data1,NULL,NULL);
SetUP_BiTree( root->Left());
}
cout<<root->data<<" 's rightChild(if it has not the child input 0) :";
cin>>data2;
if(data2!=0)
{
root->Right()=new BiTreeNode<T>(data2,NULL,NULL);
SetUP_BiTree(root->Right());
}
}
template<class T>
void BiTree_class<T>::Set( )
{
T data;
cout<<"the root:";
cin>>data;
if(data!=0)
{
BiTreeNode<T> *p=new BiTreeNode<T>(data,NULL,NULL);
root=p;
SetUP_BiTree(root);
}
}
template<class T>
void Delete_BiTree( BiTreeNode<T> *&s )
{
if(s==NULL)
return ;
BiTreeNode<T>*q=s->leftChild,*p;
while(q!=NULL)
{
p=q->rightChild;
Delete_BiTree(q);
q=p;
}
cout<<s->data<<" ";
delete s;
}
template<class T>
void BiTree_class<T>::PreOrderTree(BiTreeNode<T>*&t)
{
if(t!=NULL)
{
cout<<t->data<<" ";
PreOrderTree( t->Left());
PreOrderTree( t->Right());
}
}
template<class T>
void BiTree_class<T>::InOrderTree(BiTreeNode<T>*&t)
{
if(t!=NULL)
{
InOrderTree( t->Left());
cout<<t->data<<" ";
InOrderTree( t->Right());
}
}
template<class T>
void BiTree_class<T>::PostOrderTree(BiTreeNode<T>*&t)
{
if(t!=NULL)
{
PostOrderTree( t->Left());
PostOrderTree(t->Right());
cout<<t->data<<" ";
}
}
template<class T>
int BiTree_class<T>::Depth(BiTreeNode<T>*&root)
{
int depthleft,depthright,depth_all;
if(root==NULL)
depth_all=-1;
else
{
depthleft=Depth( root->Left());
depthright=Depth( root->Right());
depth_all=1+(depthleft>depthright?depthleft:depthright);
}
return depth_all;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -