• 二叉树遍历方法总结


    1:

    输入二叉树的先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列。

    第一行输入二叉树的先序遍历序列;
    第二行输入二叉树的中序遍历序列。

    输出该二叉树的后序遍历序列。

    ABDCEF

    BDAECF

    DBEFCA

    代码:

    #include <iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    char pre_name[100];
    char in_name[100];
    struct Node
    {
        char ch;
        Node *lefted,*righted;
        Node():ch(0),lefted(NULL),righted(NULL) {}
    };
    Node *Root;
    Node *build(int L1,int R1,int L2,int R2)//前序找根,中序分割建树
    {
        if(L2>R2)return NULL;
        Node *root;
        root=new Node();
        root->ch=pre_name[L1];
        int p=L2;
        while(in_name[p]!=root->ch)p++;
        int cnt=p-L2;
        root->lefted=build(L1+1,L1+cnt,L2,p-1);
        root->righted=build(L1+cnt+1,R1,p+1,R2);
        return root;
    }
    void select_post(Node *tree)
    {
        if(tree)
        {
            select_post(tree->lefted);
            select_post(tree->righted);
            cout<<tree->ch;
        }
    }
    int main()
    {
        scanf("%s%s",pre_name,in_name);
        int n=strlen(pre_name);
        Root=build(0,n-1,0,n-1);
        select_post(Root);
        cout<<endl;
        return 0;
    }
     

  • 相关阅读:
    Angularjs-Forms(表单)
    Angularjs-filter(过滤器)
    Angularjs –– Expressions(表达式)
    Angular
    AngularJS
    AngularJS–Scope(作用域)
    AngularJS–service(服务)
    AngularJS--控制器(Controller)
    AngularJS指南文档
    Web 开发模式演变历史和趋势
  • 原文地址:https://www.cnblogs.com/lidabo/p/16485689.html
Copyright © 2020-2023  润新知