zoukankan      html  css  js  c++  java
  • 二叉树的建立及递归遍历

    huangjing

    二叉树的的建立方式为前序  二叉树有三种遍历  前序遍历(NLR)  中序遍历(LNR)  兴许遍历(LRN)

    非递归的算法明天补上

    代码为:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<cstdlib>
    #include<map>
    #include<vector>
    #include<cmath>
    #include<string>
    #include<queue>
    #define eps 1e-9
    #define ll long long
    #define INF 0x3f3f3f3f
    using namespace std;
    
    typedef struct  BITNode
    {
        char val;
        struct  BITNode *left,*right;
    }BITNode,*BITtree;
    
    
    void buildtree(BITtree &T)
    {
         char  ss;
         scanf("%c",&ss);
         if(ss=='#')
         {
             T=NULL;
             return;
         }
         else
         {
             T=(BITtree)malloc(sizeof(BITNode));
             T->val=ss;
             buildtree(T->left);
             buildtree(T->right);
         }
    }//先序建立二叉树
    
    void visit(BITtree T)
    {
        if(T->val!='#')
            printf("%c",T->val);
    }
    
    void pre_visit(BITtree T)
    {
        if(T!=NULL)
        {
             visit(T);
             pre_visit(T->left);
             pre_visit(T->right);
        }
    }//遍历方式为NLR
    
    
    void mid_visit(BITtree T)
    {
        if(T!=NULL)
        {
             mid_visit(T->left);
             visit(T);
             mid_visit(T->right);
        }
    }//遍历方式为LNR
    
    
    void beh_visit(BITtree T)
    {
        if(T!=NULL)
        {
            beh_visit(T->left);
            beh_visit(T->right);
            visit(T);
        }
    }//遍历方式为LRN
    
    
    int main()
    {
        BITtree p;
        buildtree(p);
        printf("前序遍历为:
    ");
        pre_visit(p);
        cout<<endl;
        printf("中序遍历为:
    ");
        mid_visit(p);
        cout<<endl;
        printf("后序遍历为:
    ");
        beh_visit(p);
    }
    
    
    /*
    ABC##DE#G##F###
    -+a##*b##-c##d##/e##f##
    */
    


  • 相关阅读:
    网络编程--ASI--(ASIHTTPRequest)介绍
    iOS-多线程--介绍NSOperration
    单例模式-用GCD实现
    ios文件读取(二)
    归档、反归档
    ios文件读取
    CUICatalog: Invalid asset name supplied:
    iOS的触摸事件
    UIScrollView的属性
    exc_bad_access(code=1, address=0x789870)野指针错误
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/6978458.html
Copyright © 2011-2022 走看看