
RecursiveTreeIterator의 getPrefix 메소드는 트리의 전위 순회를 수행하여 노드의 prefix를 반환합니다. 전위 순회는 루트 노드부터 시작하여 왼쪽 자식 노드를 방문한 후 오른쪽 자식 노드를 방문하는 순회 방식입니다.
트리가 다음과 같이 구성되어 있다고 가정해 보겠습니다.
1
/ \
2 3
/ \\ / \
4 5 6 7
루트 노드인 1의 prefix를 계산해 보겠습니다. 전위 순회에서는 루트 노드를 방문한 후 왼쪽 자식 노드를 방문해야 합니다. 따라서 루트 노드 1의 prefix는 "1"입니다.
이제 루트 노드 1의 왼쪽 자식 노드인 2를 방문해 보겠습니다. 2의 prefix를 계산하기 위해, 2의 왼쪽 자식 노드인 4를 방문해야 합니다. 4의 prefix는 "1 2 4"입니다. 2의 오른쪽 자식 노드인 5를 방문해 보겠습니다. 5의 prefix는 "1 2 5"입니다.
이제 루트 노드 1의 오른쪽 자식 노드인 3을 방문해 보겠습니다. 3의 prefix를 계산하기 위해, 3의 왼쪽 자식 노드인 6을 방문해야 합니다. 6의 prefix는 "1 3 6"입니다. 3의 오른쪽 자식 노드인 7을 방문해 보겠습니다. 7의 prefix는 "1 3 7"입니다.
이제 루트 노드 1의 prefix를 계산할 수 있습니다. 전위 순회에서는 루트 노드를 방문한 후 왼쪽 자식 노드를 방문해야 하므로, 루트 노드 1의 prefix는 "1 2 4 5 3 6 7"입니다.
따라서 RecursiveTreeIterator의 getPrefix 메소드는 트리의 전위 순회를 수행하여 노드의 prefix를 반환하는 방식으로 동작합니다.
2025-08-12 08:41