두 갈래 나무의 선순과 중순을 두루 훑어보고 그 후순을 구해내다

1341 단어 나무의 기초
Q: 두 갈래 나무의 선순과 중순을 알고 있습니다. 후순을 구하십시오==
분석: 먼저 밤을 들어라. 예를 들어 우리는 어떤 두 갈래 나무의 선차적 역류와 후차적 역류가 각각 DBACEGF ABCDEFG라는 것을 알고 있다. 맵냐. 후차적 역류를 요구한다면 지금 선차적 역류에서 두 갈래 나무의 뿌리 노드(즉 선차적 첫 번째 값 D)를 찾아내야 한다. 그리고 중차적 역류에서 뿌리 노드를 찾으면 중차적 역류에서 뿌리 노드의 왼쪽이 왼쪽 나무이고 오른쪽이 오른쪽 나무라는 것을 명확하게 알 수 있다.그리고 왼쪽 나무의 뒷부분과 오른쪽 나무의 뒷부분을 찾아서 연결하면 OK==
참조 코드:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

using namespace std;
const int maxn = 1000+10;
char pre[maxn],in[maxn];
char post[maxn];// 
int cur;

void topost( char pre[], char in[],char post[], int l)
{
    if( l <= 0)
        return;
    int i;
    for( i = 0; i < l; i++)
        if( in[i] == pre[0])// 1 ( )    i+1 
            break;
    // i   
    post[l-1] = pre[0];
    topost( pre+1,in,post,i);// 
    topost( pre+1+i,in+i+1,post+i,l-1-i);
}

int main()
{
    while( ~scanf("%s%s",pre,in))//   
    {
        //printf("%s %s
",str1,str2); int len = strlen(pre);// topost( pre,in,post,len);// for( int i = 0; i < len; i++)// putchar(post[i]); putchar(10); } return 0; }

좋은 웹페이지 즐겨찾기