연습 문제 6-3 UVA 536 Tree Recovery 트리 재구성

이 문제는 예제 6-8과 유사하다
먼저 순서대로, 중간 순서대로, 뒤 순서대로, 예제 6-8을 직접 모방해서 쓰면 된다
build 함수를 씁니다.먼저 순서대로 첫 번째 문자가 바로 뿌리입니다. 그 다음에 순서대로 뿌리를 찾으면 끊임없이 귀속되고 귀속되어 출력을 완성하면 됩니다!
먼저build 왼쪽,build 오른쪽에 있습니다. 이렇게 하면 기본적으로 뒷순서로 출력하면 됩니다.
코드는 다음과 같습니다.
#include<cstdio>
#include<cstring>
const int maxn = 30;
char s1[maxn],s2[maxn];
void build(int L1,int R1,int L2,int R2){
    if (L1 > R1)return;
    char ch = s1[L1];
    int p = L2;
    while(s2[p] != ch)++p;
    int cnt=p-L2;
    build(L1+1,L1+cnt,L2,p-1);
    build(L1+cnt+1,R1,p+1,R2);
    printf("%c",ch);
}
int main()
{
    while(scanf("%s%s",s1,s2) == 2){
        int len1 = strlen(s1);
        int len2 = strlen(s2);
        build(0,len1-1,0,len2-2);
        printf("
"); } return 0; }

좋은 웹페이지 즐겨찾기