前序和中序,求出后序遍历

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前序和中序,求出后序遍历相关的知识,希望对你有一定的参考价值。

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=4e3+20;
int n;
string a,b;//a,b分别为前序和中序遍历结果 
//后序:左子树后序+右子树后序+根 
void dfs(char *a,char* b,int len)
{
	if(len<1) return;
	int i=0;
	while(b[i]!=a[0]) i++;
	dfs(a+1,b,i);
	dfs(a+i+1,b+i+1,len-i-1);
	cout<<a[0];
}
int main()
{
	char a[N],b[N];
	scanf("%s%s",a,b);
	n=strlen(a);
	dfs(a,b,n);
	cout<<endl;
	return 0;
}

  

以上是关于前序和中序,求出后序遍历的主要内容,如果未能解决你的问题,请参考以下文章

前序和中序+后序和中序

输入后序和中序,构造二叉树,并输出该二叉树的层序前序中序后序遍历结构;输入后序和中序,构造二叉树,并输出该二叉树的层序前序中序后序遍历结构

通过遍历序列构造二叉树(扩展二叉树的先序先序和中序后序和中序层序和中序)附可执行完整代码

pascal给出一棵二叉树的中序与后序排列。求出它的先序排列(帮忙解释一下程序)

何时使用前序、后序和中序二叉搜索树遍历策略

[codevs1029]遍历问题