zoukankan      html  css  js  c++  java
  • C++二叉树

    BiTree:

    #include<iostream>
    using namespace std;
    
    struct BiTNode
    {
        char data;
        BiTNode *lchild, *rchild;
    }*T;
    //BiTNode *T;
    
    //先序递归创建二叉树
    void CreatBiTree(BiTNode* &T)      
    {
        char ch;
        if((ch=getchar()) =='#')
            T = NULL;
        else
        {
            T = new BiTNode;
            T->data = ch;
            CreatBiTree(T->lchild);
            CreatBiTree(T->rchild);
        }
    }
    
    //先序递归遍历二叉树
    void PreOrderTraverse(BiTNode* &T)      
    {
        if(T==NULL)
            return;
        else
        {
            cout<< T->data;
            PreOrderTraverse(T->lchild);
            PreOrderTraverse(T->rchild);
        }
    }
    
    //中序递归遍历二叉树
    void InOrderTraverse(BiTNode* &T)      
    {
        if(T==NULL)
            return;
        else
        {
            InOrderTraverse(T->lchild);
            cout<< T->data;
            InOrderTraverse(T->rchild);
        }
    }
    
    //后续递归遍历二叉树
    void PosOrderTraverse(BiTNode* &T)     
    {
        if(T==NULL)
            return;
        else
        {
            PosOrderTraverse(T->lchild);
            PosOrderTraverse(T->rchild);
            cout<< T->data;
        }
    }
    
    //清空树
    void DeleteTree(BiTNode* &T)
    {
        if(T!=NULL)
        {
            DeleteTree(T->lchild);
            DeleteTree(T->rchild);
            delete T;
        }
    }
    
    int main()
    {
        cout<<"创建一棵树,其中A->Z字符代表树的数据,用‘#’表示空树:"<<endl;
        CreatBiTree(T);
    
        cout<<"先序递归遍历:";
        PreOrderTraverse(T);
        cout<<endl;
    
        cout<<"中序递归遍历:";
        InOrderTraverse(T);
        cout<<endl;
    
        cout<<"后序递归遍历:";
        PosOrderTraverse(T);
        cout<<endl;
    
        /*cout<<"清空树后:";
        DeleteTree(T);
        cout<<"先序递归遍历:";
        PreOrderTraverse(T);
        cout<<endl;*/
    
        return 0;
    }

      

  • 相关阅读:
    HTTP协议详解(转)
    Linux shell 提取文件名和目录名的一些方法(转)
    快速建立ssh互信(转)
    Python 连接mysql
    pt-online-schema-change原理解析(转)
    python基础学习笔记3
    python基础学习笔记2
    DNS服务器原理
    代理服务器(Proxy)原理
    Ext.MessageBox消息框
  • 原文地址:https://www.cnblogs.com/jx-yangbo/p/4877147.html
Copyright © 2011-2022 走看看