中序后序求前序
程序员文章站
2022-05-19 20:56:06
...
#include<bits/stdc++.h>
//中序 后序 求前序
using namespace std;
void f2(string& pre, string in, string post) {
if (post.length() == 0)//序列为空结束
return;
int n = post.length() - 1;//根节点
char ch = post[n];
pre += ch;//根节点存入前序中
//处理左子树
f2(pre, in.substr(0, in.find(ch)), post.substr(0, in.find(ch)));
//处理右子树
f2(pre, in.substr(in.find(ch) + 1, in.length() - in.find(ch) - 1), post.substr(in.find(ch), in.length() - in.find(ch) - 1));
}
int main() {
string pre = "";//ABCDEF
string in = "fcaegbd";//"CBAEDF";
string post = "fcgedba";//"CBEFDA";
f2(pre, in, post);
cout << pre << endl;
}
上一篇: Java编程基础(1)| 春松客服
推荐阅读
-
Python实现二叉树前序、中序、后序及层次遍历示例代码
-
Python利用前序和中序遍历结果重建二叉树的方法
-
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
-
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
-
[PHP] 算法-根据前序和中序遍历结果重建二叉树的PHP实现
-
c/c++ 用前序和中序,或者中序和后序,创建二叉树
-
Python实现二叉树前序、中序、后序及层次遍历示例代码
-
【算法】二叉树的前序、中序、后序、层序遍历和还原。
-
PHP基于非递归算法实现先序、中序及后序遍历二叉树操作示例
-
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】