#include<iostream>
using namespace std;
struct BiNode
{
char data;
BiNode *lchild,*rchild;
};
class BiTree
{
public:
BiTree(BiNode *root) //有参构造函数,初始化一颗二叉树。
{
this->root=Creat();
}
BiNode *getroot()
{
return root;
}
~BiTree() //析构函数,释放二叉树
{
Release(root);
}
void PreOrder(BiNode *root); //前序遍历
void InOrder(BiNode *root); //中序遍历
void PostOrder(BiNode *root); //后序遍历
private:
BiNode *root;
BiNode *Creat() //有参函数调用
{
char ch;
cin>>ch;
BiNode *root;
if(ch=='#') root=NULL;
else{
root=new BiNode;
root->data=ch;
root->lchild=Creat();
root->rchild=Creat();
}
return root;
}
void Release(BiNode *root) //析构函数调用
{
if(root!=NULL)
{
Release(root->lchild);
Release(root->rchild);
delete root;
}
}
};
void BiTree::PreOrder(BiNode *root) //qian
{
if(root==NULL) return;
else{
cout<<root->data;
PreOrder(root->lchild);
PreOrder(root->rchild);
}
}
void BiTree::InOrder(BiNode *root) //zhong
{
if(root==NULL) return;
else{
InOrder(root->lchild);
cout<<root->data;
InOrder(root->rchild);
}
}
void BiTree::PostOrder(BiNode *root) //hou
{
if(root==NULL) return;
else{
PostOrder(root->lchild);
PostOrder(root->rchild);
cout<<root->data;
}
}
二叉树建立并遍历。 主函数代码改怎么写? int main(){.............}
暮色呼如
哈士奇WWW
LEATH