2010-02-21 2 views
0
if right[x] != NIL 
then return TREE-MINIMUM(right[x]) 

y<-p[x] 
while y!= NIL and x = right[y] 
    do x<-y 
    y<-p[y] 
return y 

I 수단 "[X]를 잘 = NIL 다음 트리 분을 반환하는 경우!"나는 그것을 번역 한 것을 알고이 의사 코드는 무엇을 의미 하는가 - 이진 검색 트리 후임 기능

if(p->RChild) return fMinValue(p->RChild);//returns the min value of the sub-tree starting at the right child node of p 

나머지는 이해하는 데 어려움이 있습니다.

답변

2

<-은 대개 할당 연산자입니다. p 나는 부모님 같아요. 그 밖의 무엇을 혼란스러워합니까?

+0

p [x] 및 p [y]. p는 포인터이고 []의 내용은 p가 가리키는 포인터입니까? 편집 : =) 이제는 의미가 있습니다. 고맙습니다! – Azreal

+0

필자가 읽고있는'p [x]'는 노드'x'의 부모를 반환하는 함수입니다. 'right [x]'는'x'의 올바른 자식이됩니다. –

2

여기 p[]은 거의 "의 부모 노드"를 의미합니다. 노드 x에서 작업 중이므로 p[x]은 "현재 노드의 부모"를 의미합니다 (right[x]은 "현재 노드의 오른쪽 자식"을 의미 함).

<- 표기법이 지정입니다. =처럼 C와 유사한 언어.

여기에 제시된 알고리즘의 두 번째 부분은 처음으로 오른쪽 링크 대신 왼쪽 링크를 올랐을 때 트리를 찾습니다. 그러나 나는 이것이 이것을 후계자 기능으로 설명 할 지 확신하지 못한다.