luogu1030 선행 시퀀스 구하기(NOIP2001 보급팀 3번)

luogu1030 선행 시퀀스 구하기(NOIP2001 보급팀 3번)


시간 제한 1000ms/128MB

제목 설명


두 갈래 나무의 중순과 후순을 보여 줍니다.그것의 선순 배열을 구해내다.(약정 트리 결점은 서로 다른 대문자로 표시되며 길이는 ≤8).

출력 형식 가져오기


형식 입력:
두 줄은 모두 대문자로 구성된 문자열로 두 갈래 나무의 중순과 후순을 나타낸다.
출력 형식:
한 줄, 두 갈래 나무의 선순을 나타낸다.

내보내기 샘플 가져오기


샘플 입력 #1:
BADC
BDCA

출력 샘플 #1:
ABCD

 
 

코드

#include
#include
using namespace std;
struct node{
	char data;
	node *lch,*rch;
};

void create(node *&root,string s1,string s2){
	if (s1=="") { root=NULL; return; }
	root = new node;
	int len=s1.size();
	root->data = s2[len-1];
	int pos=s1.find(s2[len-1]);
	create(root->lch,s1.substr(0,pos),s2.substr(0,pos));
	create(root->rch,s1.substr(pos+1,len-pos-1),s2.substr(pos,len-pos-1));
}

void firstord(node *root){
	if (root){
		cout<data;
		firstord(root->lch);
		firstord(root->rch);
	}
}

int main(){
	string s1,s2;
	cin>>s1>>s2;
	node *root(NULL);
	create(root,s1,s2);
	firstord(root);
	cout<

좋은 웹페이지 즐겨찾기