AKOJ-1265-输出二叉树
Posted ydddd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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; }
以上是关于AKOJ-1265-输出二叉树的主要内容,如果未能解决你的问题,请参考以下文章