이 진 트 리 의 뒷 순서 와 중간 순 서 를 옮 겨 다 니 는 결 과 를 알 고 있 습 니 다.
Description
제목 은 간단 합 니 다. 이 진 트 리 의 뒷 순서 와 중간 순 서 를 드 리 고 앞 순 서 를 구 합 니 다 (So easy!).
Input
여러 그룹의 데이터 (100 그룹 이하) 를 입력 하여 파일 로 끝 냅 니 다.각 그룹의 데 이 터 는 한 줄 에 불과 합 니 다. 두 문자열 을 포함 하고 중간 은 빈 칸 으로 구분 되 며 각각 이 진 트 리 의 뒷 순서 와 중간 순서 (문자열 길이 가 26 보다 적 고 입력 데 이 터 는 합 법 적 임) 를 표시 합 니 다.
Output
각 그룹의 출력 데 이 터 는 단독으로 한 줄 을 차지 하고 출력 은 우선 순위 서열 에 대응 합 니 다.
Sample Input
ACBFGED ABCDEFG
CDAB CBAD
Sample Output
DBACEGF
BCAD
귀속 사고:
후 순위 에서 뿌리 노드 를 찾 고 찾 은 후에 중간 순 서 를 옮 겨 다 니 며 뿌리 노드 를 경계 로 왼쪽 서브 트 리 와 오른쪽 서브 트 리 로 나 눕 니 다.
인쇄 루트 노드
왼쪽 나무 로 되돌아가다
오른쪽 하위 트 리 재 귀적
실현 절차:
1. 문자열 배열 a 에 문자열 배열 b 를 순서대로 저장 합 니 다.
2. 재 귀 함 수 는 세 개의 변수 (1) 뿌리 노드 가 a 의 위치 (2) b 에서 작 동 하 는 부분의 시작 위치 와 끝 위 치 를 받 아야 합 니 다.
void recovery(int root,int start,int end)
3. 함수 에 들 어간 후 b 를 옮 겨 다 니 며 루트 노드 위 치 를 찾 고 i 로 위 치 를 저장 합 니 다.
4. 루트 노드 인쇄
5. 왼쪽 트 리 재 귀적
ps: 이 때 전송 할 start 와 end, root 는 왼쪽 트 리 ABC 에 대한 것 입 니 다.
그래서 root = toot - (end - i) - 1; start 불변;end=i-1;
6. 오른쪽 트 리 재 귀적
같은 EFG 겨냥. root=root-1; start=i+1;end 불변;
주의: end = = start 일 때 현재 노드 는 잎 노드 이기 때문에 start > end 일 때 귀속 종료 조건 입 니 다.
코드:
#include
#include
void recovery(int root,int start,int end);
char a[1000];
char b[1000];
int main()
{
while(scanf("%s",a)==1)
{
scanf("%s",b);
int l=strlen(a);
recovery(l-1,0,l-1);
printf("
");
}
}
void recovery(int root,int start,int end)
{
if(start>end)
return ;
int i=start;//i
while(i
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[데이터 구조] - - 하나의 링크 를 두 개의 링크 로 나 눕 니 다.교실 숙제 하나의 체인 시 계 를 두 개의 체인 시계 로 나누다. 요구: 링크 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 1, 3, 5, 7, 9 로 나 뉜 다. 2, 4, 6, 8, 10 두 개의 체인 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.