您的位置:首页 > 其它

Simple implementation of the BinaryTree preorder traversal, inorder traversal, post traversal

2017-10-29 16:38 671 查看
#include <iostream>
using namespace std;
struct BiTNode
{
char data;
struct BiTNode *lchild, *rchild;
};
class BinaryTree
{
public:
BinaryTree();
void CreateBiTree();
void PreOrderTraverse();
void Inorder();
void Posorder();
void PreOrderCount();
void PreOrderCount(BiTNode* &T) ;
void CreateBiTree(BiTNode* &T);
void PreOrderTraverse(BiTNode* &T) ;
void Inorder(BiTNode* &T) ;
void Posorder(BiTNode* &T);
int GetCount();
private:
BiTNode*T;
int count;
};
BinaryTree::BinaryTree()
{
count=0;
}
void BinaryTree::CreateBiTree(BiTNode* &T)
{
char ch;
cin>>ch;
if(ch=='.')//if((ch=getchar())=='#')
T=NULL;
else
{
T=new BiTNode;
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
}

void BinaryTree::PreOrderTraverse(BiTNode* &T)
{
if(T)
{
cout<<T->data;
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
}

void BinaryTree::Inorder(BiTNode* &T)
{
if(T)
{
Inorder(T->lchild);
cout<<T->data;
Inorder(T->rchild);
}
}

void BinaryTree::Posorder(BiTNode* &T)
{
if(T)
{
Posorder(T->lchild);
Posorder(T->rchild);
cout<<T->data;
}
}

void BinaryTree::PreOrderCount(BiTNode* &T)
{
if(T)
{
count++;
PreOrderCount(T->lchild);
PreOrderCount(T->rchild);
}
}
void BinaryTree::CreateBiTree()
{
CreateBiTree(T);
}
void BinaryTree::Inorder()
{
Inorder(T);
}
void BinaryTree::PreOrderTraverse()
{
PreOrderTraverse(T);
}
void BinaryTree::PreOrderCount()
{
PreOrderCount(T);
}
int BinaryTree::GetCount()
{
return count;
}
void BinaryTree::Posorder()
{
Posorder(T);
}
int main()
{
BinaryTree bn;
cout<<"创建一颗树,输入字符代表树的数据,用“.”表示空树:"<<endl;
bn.CreateBiTree();
cout<<"Preorder traversal:"<<endl;
bn.PreOrderTraverse();
cout<<endl;
cout<<"Inorder traversal:"<<endl;
bn.Inorder();
cout<<endl;
cout<<"Postorder traversal:"<<endl;
bn.Posorder();
cout<<endl;
cout<<"The number of nodes is:"<<endl;
bn.PreOrderCount();
cout<<bn.GetCount()<<endl;
return 0;
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐