알고스팟 문제 링크: https://algospot.com/judge/problem/read/TRAVERSAL

 

algospot.com :: TRAVERSAL

트리 순회 순서 변경 문제 정보 문제 트리를 순회하는 알고리즘은 트리의 모든 노드들을 특정 순서에 맞춰 방문하지만, 트리는 배열처럼 1차원적인 구조가 아니기 때문에 단 한 가지의 당연한

algospot.com

트리의 전위순회와 중위순회 결과가 주어졌을때, 해당 트리의 후위 순회를 출력하는 문제이다.

 

전위순회 결과의 첫번째 원소는 해당 트리의 루트이고, 중위순회 결과에서 루트를 찾아 루트의 왼쪽은 왼쪽 서브트리 오른쪽은 오른쪽 서브트리로 나눌 수 있다.

또한 이렇게 해서 얻은 각각의 서브트리의 크기를 이용해서 전위순회 또한 왼쪽 서브트리의 출력과 오른쪽 서브트리의 출력을 구분 할 수있다.

이제 전위순회와 중위순회를 각각 왼쪽 서브트리와 오른쪽 서브트리로 나눌 수 있으므로 나눠서 재귀호출한다.

 

코드 원본: https://github.com/sbl133/JongmanBook/blob/main/21.%20Tree%20traversal/TRAVERSAL.cpp

 

GitHub - sbl133/JongmanBook

Contribute to sbl133/JongmanBook development by creating an account on GitHub.

github.com

댓글을 통한 코드리뷰, 질문, 지적 언제든 환영입니다!

reference: 프로그래밍 대회에서 배우는 알고리즘 문제해결전략2

+ Recent posts