1096 문제 A 이 진 트 리 복원

1473 단어 경험 총화
문제 A: 이 진 트 리 복원
시간 제한: 1 Sec  메모리 제한: 32 MB 제출: 102  해결: 76  
제목 설명
샤 오 밍 은 데이터 구조의 작업 을 하고 있 습 니 다. 그 중 하 나 는 이 진 트 리 의 앞 순 서 를 옮 겨 다 니 며 결 과 를 옮 겨 다 니 는 것 입 니 다. 이 이 진 트 리 의 뒤 순 서 를 옮 겨 다 니 라 고 요구 합 니 다.
입력
여러 그룹의 테스트 데 이 터 를 입력 하 십시오.각 그룹의 입력 은 두 개의 문자열 을 포함 하고 있 으 며, 각각 이 진 트 리 의 앞 순서 와 중간 순서 가 결 과 를 나타 낸다.모든 문자열 은 중복 되 지 않 는 대문자 로 구성 되 어 있다.
출력
각 그룹의 입력 에 대응 하 는 이 진 트 리 의 후속 스 트 리밍 결 과 를 출력 합 니 다.
샘플 입력
DBACEGF ABCDEFG
BCAD CBAD

샘플 출력
ACBFGED
CDAB

경험 총화
이 문제 는기본 적 이 야. 정리 할 게 없어. 코드 봐.ھ
정확 한 코드
#include 
const int maxn=200;
char pre[maxn],in[maxn];
struct node
{
    char data;
    node *lchild;
    node *rchild;
};
void post(node * root)
{
	if(root==NULL)
		return;
	post(root->lchild);
	post(root->rchild);
	printf("%c",root->data);
}
node * create(int preL,int preR,int inL,int inR)
{
	if(preL>preR)
		return NULL;
	node * p=new node;
	p->data=pre[preL];
	int k;
	for(k=inL;klchild=create(preL+1,preL+numleft,inL,k-1);
	p->rchild=create(preL+numleft+1,preR,k+1,inR);
	return p;
}
int main()
{
	int n;
    while(~scanf("%s",pre))
    {
    	scanf("%s",in);
    	n=0;
    	while(pre[n]!='\0')
    		n++;
    	node *root=create(0,n-1,0,n-1);
    	post(root);
    	printf("
"); } return 0; }

좋은 웹페이지 즐겨찾기