二叉树的基本功能实现(c++)

这篇博客介绍了一个C++实现的二叉树基本操作系统,包括建立、前序遍历(递归和非递归)、中序遍历(递归和非递归)、后序遍历(递归和非递归)、求树高、求叶子总数和输出二叉树等功能。通过用户输入选择执行相应操作,适合初学者学习和实践。
摘要由CSDN通过智能技术生成

        第一次学二叉树啊,基本的功能为:建立,求叶子,求树高,前序(递归&&非递归),中序(递归&&非递归),后序(递归&&非递归),输出.....    

虽然有很多成分是书上的,不过辛苦了很久,安慰一下自己吧微笑 ....   求高手给一些意见,改进一下!微笑

//main.cpp:

#include <iostream>
#include "head.h"
using namespace std;


int main()
{
    cout<<"-------------------欢迎来到二叉树基本操作实现系统--------------------------"<<endl;
    cout<<"请按照提示进行操作,祝你操作愉快,谢谢~~ ^_^ ^_^ ^_^"<<endl<<endl;
    int cas,pp=0;                        //pp为判断循环标志,cas为选择操作的序号
    BinaryTree<char> btree;
BinTreeNode<char> *p=btree.getRoot();
    while(pp==0)
    {
        cout<<"1------建立一棵二叉树"<<endl;
        cout<<"2------前序遍历递归算法"<<endl;
        cout<<"3------前序遍历非递归算法"<<endl;
        cout<<"4------中序遍历递归算法"<<endl;
        cout<<"5------中序遍历非递归算法"<<endl;
        cout<<"6------后序遍历递归算法"<<endl;
        cout<<"7------后序遍历非递归算法"<<endl;
        cout<<"8------求树高"<<endl;
        cout<<"9------求叶子总数"<<endl;
        cout<<"10-----输出二叉树"<<endl;
        cout<<"11-----退出"<<endl<<endl;
        cout<<"请输入你要实现功能的对应数字:";
        cin>>cas;
        switch(cas)
        {
        case 1:cout<<"请按照广义表的形式输入二叉树,并且以‘#’结束!!"<<endl;
               btree.Create(p);
  if(p!=NULL) {cout<<"输入完成"<<endl<<endl;}
               break;
        case 2:if(p==NULL)
               {
                    cout<<"!!二叉树还没建立,请先建立二叉树。"<<endl;
               }
               else
               {
                   cout<<"用前序遍历的递归算法输出的二叉树为:";
                   btree.preOrder(p);
                   cout<<endl;
               }
               break;
        case 3:if(p==NULL)
               {
                    cout<<"!!二叉树还没建立,请先建立二叉树。"<<endl;
               }
               else
               {
                   cout<<"用前序遍历非递归算法输出的二叉树为:";
                   btree.no_preOrder(p);
                   cout<<endl;
               }
               break;
        case 4:if(p==NULL)
               {
                    cout<<"!!二叉树还没建立,请先建立二叉树。"<<endl;
               }
               else
               {
                   cout<<"用中序遍历的递归算法输出的二叉树为:";
                   btree.inOrder(p);
                   cout<<endl;
               }
               break;
        case 5:if(p==NULL)
               {
                    cout<<"!!二叉树还没建立,请先建立二叉树。"<<endl;
               }
               else
               {
                   cout<<"用中序遍历的非递归算法输出的二叉树为:";
                   btree.no_inOrder(p);
                   cout<<endl;
               }
               break;
        case 6:if(p=

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值