2013-03-23 3 views
1

의 각 노드의 부모를 찾습니다. 노드를 포함하는 배열이 있습니다. inorder sucessor 서브 루틴을 구현해야합니다. O (H)에서 주어진 노드의 부모BST : 각 노드의 inorder successor가 주어지면 O (h)

을 찾기 위해 왼쪽과 오른쪽 포인터는 내가 제대로 질문을 이해하면 확실하지 않다

+0

질문을 올바르게 구체화 했습니까? – Alexander

+0

각 노드의 왼쪽과 오른쪽이 주어진다면 후계자를 사용하지 않고도 문제를 해결할 수 있지만 솔루션이 있는지 여부는 확실하지 않기 때문에 저는 꽤 확신합니다. – Sr1n4th

+0

나는 당신이 제공 한 정보로 그 나무를 모호하게 할 수 없다고 생각한다. 예제로 질문을 더 잘 업데이트하십시오. – Alexander

답변

0

을 부여하지 않습니다하는 BST에 후계자를 주문에-단순히 다음을 의미한다 높은 요소. 이제이 정보를 제공하여 하나 이상의 BST를 작성할 수 있습니다. 예를 들어 [{1,4}, {2,1}, {3,2}, {5,3}] 여기서 {a, b}는 a가 노드이고 b가 순서가 지정된 후계자임을 의미합니다. 트리의 가능한 구현은 4 IPO (읽기 부모) 1과 NULL, 1 IPO 2와 NULL, 2 IPO 3과 NULL 그리고 마지막으로 3 IPO 5와 NULL입니다. 이 정보는 배열을 한 번만 트래버스해야하므로 O (n) 복잡도에서 찾을 수 있습니다.

관련 문제