이진 트리의 사전 및 사후 주문 통과의 유용성


13

이것은 매우 순진하지만 모든 순회 유형의 이진 트리 (일반, 정렬 및 균형 조정) 컨텍스트와 관련하여 궁금합니다.

  • 깊이 우선 선주문
  • 깊이 우선
  • 깊이 우선 포스트 오더
  • 너비 우선

사전 및 사후 주문의 실제 유용성은 무엇입니까? 사전 및 / 또는 주문 후 순회가 다른 두 가지에 비해 (일부) 이점을 제공하는 이진 트리의 유형 및 / 또는 구성이 있습니까?

AFAICS에는 순서와 폭이 일정한 이점을 제공 할 수있는 특정 유형 및 이진 트리 구성이 있습니다.

  • 균형 이진 트리의 경우 모든 깊이 우선 순회는 너비 우선에 비해 적은 메모리 저장 공간을 사용합니다 (예 : 6 또는 7 노드의 균형 이진 트리의 경우 높이는 2이므로 모든 깊이 우선 순회는 최대 값을 저장해야 함). 주어진 시간에 2 개의 노드, 마지막 레벨에는 3 개 또는 4 개의 노드가 있으므로 너비 우선 탐색은 특정 시점에 최대 3 개 또는 4 개의 노드를 저장해야합니다. 이 경우 순서 순회를 사용하면 메모리가 가장 적게 사용되며 자연 순서대로 노드를 방문합니다.

  • 균형이 맞지 않는 이진 트리의 경우 최악의 삽입 시나리오에 가까우면 너비 우선 순회는 깊이 우선 순회보다 메모리 사용량이 적습니다. 따라서이 경우 너비 우선은 이점을 제공합니다. 순차 순회는 다시 자연스럽게 값을 방문하는 이점이 있습니다.

그러나 사전 및 사후 통과가 다른 두 가지보다 유리한 상황을 생각할 수 없습니다.

답변:


13

데이터 구조와 파일 또는 언어와 같은 일부 직렬 표현 간의 변환과 같이 트리를 사용하여 다양한 작업을 수행해야합니다.

예를 들어 다음과 같은 구문 분석 트리가 있다고 가정합니다.

    *
   / \
  +   \
 / \   \
A   B   C

* + A B C접두사 순서로 걷거나 접두사 순서 로 밟아서 직렬화 할 수 A B + C *있습니다. 언어 프로세서를 전혀 사용하지 않는다면, 그런 것은 제 2의 성격이되어야합니다.


아주 좋은 예입니다! 그리고 순차 순회가 산출 A + B * C되는 방식에 주목하십시오 . 이는 접두사 순서의 접두어보다 일반 사용자가 이해하기가 훨씬 쉽습니다.
Kilian Foth

3
@KilianFoth는 나무가 말한 것이 아니라는 것을 제외하고는-적어도 내 눈에는 (A + B) * C라고 말합니다. 내 HP-28s 손가락은 AB + C * 버전과 비슷하지만 괜찮습니다. :-)
sdg

@ 킬리언 : sdg가 ​​맞습니다. 순서가 없으면 모든 것을 괄호로 묶지 않는 한 우선 순위에 관심을 가져야합니다.
Mike Dunlavey

13

위키 피 디아 기사는 당신이 깊이 우선 탐색의 다른 유형을 사용하고자 할 때의 좋은 간결한 설명이 있습니다 :

  • 노드와 값을 복제하는 동안 사전 순회는 이진 트리의 완전한 복제본을 만들 수 있습니다. 또한 표현식 트리에서 접두사 표현식 (폴란드 표기법)을 만드는 데 사용할 수 있습니다. 표현식 트리를 순서대로 순회합니다.
  • 순차 순회는 이진 검색 트리를 설정 한 비교기 (따라서 이름)에 따라 기본 집합에서 순서대로 값을 반환하기 때문에 이진 검색 트리에서 매우 일반적으로 사용됩니다.
  • 노드 및 값을 삭제하거나 해제하는 동안 주문 후 순회는 전체 이진 트리를 삭제하거나 해제 할 수 있습니다. 이진 트리의 접미사 표현을 생성 할 수도 있습니다.

그것은 알고리즘의 물류 요구로 요약됩니다. 예를 들어, 삭제 중 주문 후 순회를 사용하지 않으면 하위 트리를 삭제하는 데 필요한 참조가 손실됩니다.


2019 년 11 월 10 일자로 Wikipedia가 변경되었으며 첫 번째 설명도 Post-Order에 속하므로 혼동됩니다. 그것이 내가 다른 정보 출처를 찾게 된 이유입니다.
whoan

5

이진 트리를 처리하기 위해 다른 알고리즘을 사용하는 것은 트리를 사용하지 않는 것입니다. 이 추상 수준에서는 절차에서 추상 기호 만 가져 오기 때문에 하나의 순서는 다른 순서와 비슷합니다.

그러나 나무는 일반적으로 흥미로운 것들을 나타내는 데 사용되며 결과에 큰 차이를 만들 수 있습니다. 노드가 먼저 처리하는 첫번째 대 내림차순, 큰 도메인 (어쩌면 무한 도메인)를 통해 전체 검색 상태를 검색 표현하는 경우 예를 들어,뿐만 아니라하는 결과가 발견 순서 결정, 심지어 결정할 수 있는지 여부 혹시 것이다 모든 솔루션을 찾으십시오 . 무한한 영역에서 가장 쉽게 볼 수있는 요점입니다. 조심스럽게 내려 가면 잘못된 방향으로 돌리기 때문에 트리에서 상당히 높은 솔루션을 간과 할 수 있습니다. 그러나 실제로는 메모리와 디스크도 유한하기 때문에 실제로 무한대가 아닌 매우 큰 도메인에도 적용됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.