Study/기초

트리

devyoseph 2021. 10. 9. 17:09
트리: 그래프 중 특수한 형태의 그래프
트리 그리는 법: 맨 위에 노드를 하나 그리고 간선으로 연결된 노드들을 아랫줄에 그려나간다
트리의 조건: 사이클이 없고 한 노드에서 모든 노드로 갈 수 있어야 한다
루트: 가장 위의 노드
부모 노드: 어떤 노드 위쪽에 있는 노드
자식 노드: 어떤 노드의 아래쪽에 있는 노드
리프: 가장 끝에 있는 노드
노드의 수가 n개 일 때 간선의 수는? n-1개
루트를 제외한 모든 노드는 부모 노드와 연결된다
자식 노드끼리 연결하는 순간 사이클이 생긴다

 

이진 트리: 모든 자식 노드가 최대 두 개 존재하는 트리

 

이진 트리 순회: 이진 트리의 모든 노드의 값을 출력하는 방법이 크게 3가지가 있다
이진 트리 순회의 공통점: 루트에서 시작하고 왼쪽을 탐색한 뒤 오른쪽을 탐색한다
1)전위 순회: ABDECFG
현재 보고 있는 노드를 출력한 뒤 왼쪽으로 내려가고 왼쪽에 대한 처리가  끝나면 오른쪽으로 내려간다. 모든 처리가 끝나면 올라간다
2)중위 순회: DBEACFG
현재 보고 있는 노드의 왼쪽으로 내려가고, 왼쪽에 대한 처리가 끝나면 현재 노드를 출력한 뒤 오른쪽으로 내려간다. 모든 처리가 끝나면 올라간다
3)후위 순회: DEBGFCA
현재 보고 있는 노드의 왼쪽으로 내려가고, 왼쪽에 대한 처리가 끝나면 오른쪽으로 내려간다. 오른쪽에 대한 처리가 끝나면 현재 노드를 출력한 뒤 올라간다

 

트리 복구: 중위 + 전위/후위 통해 나머지 하나의 순회 결과를 알 수 있다
전위와 후위만으로는 트리복구를 할 수 없다
전위 순회는 출력을 먼저 한다. 루트가 맨 앞에 있다
후위 순회는 출력을 마지막에 한다. 루트가 맨 뒤에 있다
중위 순회에서 루트보다 먼저 출력된 것은 루트의 왼쪽에 있는 노드이고 루트보다 나중에 출력된 것은 루트의 오른쪽에 있는 노드이다

 

예제 - 트리복구
다음 이진 트리 순회결과를 이용해 트리를 복구해보자
전위 순회 결과: A B D C E F G
중위 순회 결과: D B A F E G C

 

해답

다음 이진 트리 순회결과를 이용해 트리를 복구해보자
중위 순회 결과: D B F E G A C H
후위 순회 결과: D F G E B H C A

 

해답

'Study > 기초' 카테고리의 다른 글

수학02  (0) 2021.10.22
수학01  (0) 2021.10.21
그래프  (0) 2021.10.09
  (0) 2021.10.08
스택  (0) 2021.10.08