poj2255

就是前序中序变后序,以前用JAVA写过一个,是先建树然后后序遍历,其实解析前序中序的建树过程本身也是对树的遍历过程,因此可以把建树直接替换成输出,调整成后序的顺序,就可以了。

另外

scanf("%d%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。

#include<stdio.h>
char pre[27],in[27];
int size;
void f(int preStart,int preLast,int inStart,int inLast){
	char value = pre[preStart];	
	int i=-1;
	while(in[++i]!=value);
	if(inStart<i){		
		f(preStart+1,preStart+i-inStart,inStart,i-1);
	}
	if(inLast>i){		
		f(preStart+i-inStart+1,preLast,i+1,inLast);
	}
	printf("%c",value);
}

int main(){		
	while(scanf("%s%s",pre,in)!=EOF){		
		size=-1;
		while(pre[++size]!=NULL);
		f(0,size-1,0,size-1);		
		printf("\n");		
	}
	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值