2013-01-31 1 views
1

BST에서 각 노드에 상위 노드에 대한 포인터가 없으면 하위 노드에 대한 포인터 (왼쪽 및 오른쪽 자식 포인터가 있음)가 있어야합니다. 후행 포인터를 기반으로 상위를 가져 오는 알고리즘을 어떻게 설계 할 수 있습니까?BST의 후임에 따라 노드의 부모를 얻는 방법은 무엇입니까?

+2

간단한 다이어그램을 제공 할 수 있습니까? 나는 후계자와 부모의 차이를 이해하지 못합니다. –

+0

@Randall 노드의 후계자를 요리하십시오 x는 x.key보다 작은 가장 작은 키입니다 – eleven

답변

1

노드 n의 경우 s.left == n이 될 때까지 후속 번호 s을 반복적으로 가져올 수 있습니다. s이 부모입니다. 그러한 노드가 발견되지 않으면 n은 올바른 자식이며 s.right == n이 될 때까지 첫 번째 요소 (반복적으로 e = e.left을 호출하여 쉽게 얻을 수 있음)부터 시작하여 후속 숫자 s을 반복적으로 얻습니다. 그런 다음 s은 부모입니다.

+0

@Dukeling을 도와 주셔서 감사합니다 – eleven

관련 문제