已知中序前序求后序

原创 2016年05月30日 11:07:03
#include<stdio.h>
#include<stdlib.h>
struct node{
	int x;
	struct node *l,*r;
};
int qx[100],zx[100];
struct node *js(int qs,int qt,int zs,int zt){
    if(qs>qt)   return NULL;	
	struct node *h=new node;
	h->x=qx[qs];
	h->l=NULL;h->r=NULL;
	if(qs==qt)
		return h;
	int pos;
	for(int i=zs;i<=zt;i++)
	    if(zx[i]==qx[qs]){
			pos=i;
			break;
		}	
	h->l=js(qs+1,qs+pos-zs,zs,pos-1);
	h->r=js(qs+pos-zs+1,qt,pos+1,zt);
	return h;
}
void out(struct node *h){
    if(h)out(h->l);
	if(h)out(h->r);
	if(h)printf("%d ",h->x);	
}
int main(){
	int i,j,k,m,n;
	scanf("%d",&n);
	for(i=1;i<=n;i++)scanf("%d",&qx[i]);
	for(i=1;i<=n;i++)scanf("%d",&zx[i]);
	struct node *h=js(1,n,1,n);
	out(h);
	system("pause");
	return 0;	
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

已知先序中序求后序-已知后序中序求先序-JAVA

通过递归遍历的方法扫描先序中序,构造二叉树; 通过递归遍历的方法扫描后序中序,构造二叉树; 方法理解起来很简单,在纸上自己画画就知道如何去做了,该算法难点在于遍历中需要精确的数学计算,还需要清晰的...
  • KJDynasty
  • KJDynasty
  • 2017年04月15日 12:10
  • 366

已知前序(先序)与中序输出后序

已知前序(先序)与中序输出后序: 前序:1, 2, 3, 4, 5, 6(根左右) 中序:3, 2, 4, 1, 6, 5(左根右) 分析:因为前序(根左右)最先出现的总是根结点,所以令root...
  • liuchuo
  • liuchuo
  • 2016年08月06日 13:37
  • 976

已知二叉树的中序和后序求前序

例子,后序遍历为 gbdehfca,中序遍历为 dgbaechf 后序遍历中的最后一个元素是根节点,a,然后查找中序中a的位置 把中序遍历分成 dgb a echf,而因为节点个数要对应 ...
  • wuchuanpingstone
  • wuchuanpingstone
  • 2011年10月10日 20:32
  • 12947

根据二叉树的前序和中序求后序

在面试的过程中,发现有几家公司都喜欢考这样的一道题,就是在一棵二叉树中,已知这棵二叉树的前序和中序遍历结果,要求写出后序遍历结果。  例如:在一棵二叉树总,前序遍历结果为:ABDGCEFH,中序...
  • hinyunsin
  • hinyunsin
  • 2011年04月11日 14:31
  • 24049

二叉树:已知前序中序求后序结果的问题

题目描述: 若某二叉树的前遍历访问顺序是序abdgcefh,中序遍历顺序是dgbaechf,则后序遍历的访问顺序是什么。若某二叉树的前遍历访问顺序是序abdgcefh,中序遍历顺序是dgbaechf...
  • gengshenghong
  • gengshenghong
  • 2010年05月25日 14:48
  • 16371

已知先序和中序,计算后序的(c/c++)方法实现

已知先序和中序,计算后序的(c/c++)方法实现 char pro[30]; char in[30]; int find(char c,char a[],int s,int e) { int ...
  • u012441145
  • u012441145
  • 2015年05月14日 12:14
  • 251

python二叉树遍历、求深度、已知前序中序 求树 求后序

已知前序中序 求二叉树
  • su92chen
  • su92chen
  • 2017年04月19日 17:06
  • 637

已知二叉树前序,中序遍历,求后序遍历,java实现

简单介绍一下思想,先看前序,前序遍历的第一个节点,就是该树的根。在中序中找到该根的位置,设为index,在中序遍历集合中,位于index之前的属于根的左子树,位于index之后的属于根的右子树。然后,...
  • sinat_32092165
  • sinat_32092165
  • 2017年05月11日 19:57
  • 668

树的遍历-已知中序+(前序|后序)求层次遍历

先来看一道题目: L2-2. 树的遍历 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B ...
  • u013454746
  • u013454746
  • 2016年05月22日 22:12
  • 1426

HDU 1710 已知前序中序须求后序。

Binary Tree Traversals Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/O...
  • sky_miange
  • sky_miange
  • 2016年05月27日 20:32
  • 362
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:已知中序前序求后序
举报原因:
原因补充:

(最多只允许输入30个字)