首页 > 编程语言 > 详细

算法训练——求先序排列

时间:2020-02-02 18:14:45      阅读:64      评论:0      收藏:0      [点我收藏+]

 

//求先序排列
//已知中序和后序,求先序,递归 
#include<stdio.h>
#include<string.h>
#define MAXN 8
//5个参数 中序序列,后序序列,根位置,开始下标,结束下标 
void pre(char infixOrder[],char rearOrder[],int root,int start,int end){
	if(start > end)
		return;
	int i = start;
	while(i< end && infixOrder[i] != rearOrder[root])
		i++;
	printf("%c",rearOrder[root]);
	pre(infixOrder,rearOrder,root-end+i-1,start,i-1);	
	pre(infixOrder,rearOrder,root-1,i+1,end);
}
int main(){
	char infixOrder[MAXN];
	char rearOrder[MAXN];
	scanf("%s\n%s",infixOrder,rearOrder);
	int length = strlen(infixOrder);
	pre(infixOrder,rearOrder,length-1,0,length-1);
	return 0;	
} 

  

算法训练——求先序排列

原文:https://www.cnblogs.com/Hqx-curiosity/p/12252901.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!