zoukankan      html  css  js  c++  java
  • AKOJ-1265-输出二叉树

    链接:https://oj.ahstu.cc/JudgeOnline/problem.php?id=1265

    题意:

    我们知道二叉树的先序序列和中序序列或者是中序和后序能够唯一确定一颗二叉树。现在给一颗二叉树的先序序列和中序序列,要求输出它的后序序列。

    思路:

    递归求解。

    代码:

    #include <iostream>
    
    using namespace std;
    
    string one, two;
    
    void Solve(int l1, int r1, int l2, int r2)
    {
        if (l2 == r2)
        {
            cout << two[l2];
            return;
        }
        if (l2 > r2)
            return;
        int root = l1;
        int len = 0;//左子树的长度
        while (one[root] != two[l2 + len])
            len++;
        Solve(l1 + 1, l1 + len, l2, l2 + len - 1);
        Solve(l1 + len + 1, r1, l2 + len + 1, r2);
    
        cout << one[root];
    }
    
    
    int main()
    {
        cin >> one >> two;
        Solve(0, one.size() - 1, 0, two.size() - 1);
    
        return 0;
    }
    

      

  • 相关阅读:
    二分查找改遍
    条件运算符?:
    k倍区间
    分巧克力
    mm
    素数
    递归return
    确定一个域名使用的邮箱服务商
    mysql 存储过程一实例
    使用vmware 共享 windows下的文件夹 到 centos
  • 原文地址:https://www.cnblogs.com/YDDDD/p/10392356.html
Copyright © 2011-2022 走看看