数据结构实验四 信管117121刘愿

实验四 树与二叉树列实验

void CountLeaf1(BiNode *bt)

       {

              if(bt!=NULL){

                     if(bt->lchild==NULL&&bt->rchild==NULL)

                            count++;

                     CountLeaf(bt->lchild,count);

                     CountLeaf(bt->rchild,count);

              }

       }

#ifndef BiTree_H

#define BiTree_H

struct BiNode

{

       char data;

       BiNode*lchild,*rchild;

};

class BiTree

{

public:

       BiTree(){root=Creat(root);}

       ~BiTree(){Release(root);}

       void PreOrder(){PreOrder(root);}

       void InOrder(){InOrder(root);}

       void PostOrder(){PostOrder(root);}

private:

       BiNode*root;

       BiNode*Creat(BiNode *bt);

       void Release(BiNode *bt);

       void PreOrder(BiNode *bt);

       void InOrder(BiNode *bt);

       void PostOrder(BiNode *bt);

};

#endif

#include<iostream>

using namespace std;

#include"Bitree.h"

BiNode *BiTree::Creat(BiNode *bt)

{

       charch;

       cout<<"请输入创建一棵二叉树的结点数据"<<endl;

       cin>>ch;

       if(ch=='#')returnNULL;

       else{

              bt=newBiNode;

              bt->data=ch;

              bt->lchild=Creat(bt->lchild);

              bt->rchild=Creat(bt->rchild);

       }

       returnbt;

}

void BiTree::Release(BiNode *bt)

{

       if(bt!=NULL){

              Release(bt->lchild);

              Release(bt->rchild);

              deletebt;

       }

}

void BiTree::PreOrder(BiNode *bt)

{

       if(bt==NULL)return;

       else{

              cout<<bt->data<<"";

              PreOrder(bt->lchild);

              PreOrder(bt->rchild);

       }

}

void BiTree::InOrder(BiNode *bt)

{

       if(bt==NULL)return;

       else{

              InOrder(bt->lchild);

              cout<<bt->data<<"";

              InOrder(bt->rchild);

       }

}

void BiTree::PostOrder(BiNode *bt)

{

       if(bt==NULL)return;

       else{

              PostOrder(bt->lchild);

              PostOrder(bt->rchild);

              cout<<bt->data<<"";

       }

}

#include<iostream>

using namespace std;

#include "Bitree.h"

int main()

{

       BiTreeT;

       cout<<"------前序遍历------"<<endl;

       T.PreOrder();

       cout<<endl;

       cout<<"------中序遍历------"<<endl;

       T.InOrder();

       cout<<endl;

       cout<<"------后序遍历------"<<endl;

       T.PostOrder();

       cout<<endl;

       return0;

}



猜你喜欢

转载自blog.csdn.net/qq920896923/article/details/80261117