2012-07-09 2 views

답변

3

하지 난 다음 그러나에 의해 경우입니다 완전히 확인 :

하는가가

당신은 복잡 O(n+m+n) 될 것을 의미하는 또 다른 N을 추가 O(n+m+n) = O(n+m) 있습니다, 그래서 정말 여기가 문제가되지 않습니다 . 이 배열 a[1,...,n]a[i] = j if and only if node i is connected to node j in the tree (루트에 대한 특별한 마크) 노드 v는 "발견"는 BFS 동안 그래서

, 노드로 표현 될 수 있기 때문에

은 나무의 건물은, O(n+m)에서 할 수 있습니다 u, 당신은 단지 a[u]=v을 할 필요가 전체의 복잡성 당신은 노드를`발견 v` 때 노드 'I 추가했습니다 u`했다 O(n+m)

+0

남아 있으므로, 이것은, n 시간을 일정 시간에 완료하고, 정확하게 이루어집니다 'a [v] = u'. 그것은 반대가되어서는 안됩니까? 같은 노드가 더 많은 노드를 발견 할 수 있습니다. 오타가되었거나 뭔가 빠졌습니까? – Zagorax

+0

예, 그렇습니다. 수정해 주셔서 감사합니다. – amit

+0

질문이 하나 더 있습니다. 그리고 우리가 나무를 배열이 아닌 '나무'로 만들고자한다면 어떨까요? 내 말은, 만약 내가 진짜 나무 구조를 가지고 있다면, 그 노드가 소스로부터 얼마나 멀리 떨어져 있는지를 결정할 수 있습니다. 그런 구조를 만드는 데 더 비싼 경우는 얼마나 비쌉니까? – Zagorax

관련 문제