2012-12-10 4 views
0

의 최소값 :최대 이진 트리

Node* BST::Minimum(Node *curr) { 

    if (curr->left != NULL) { 
     Minimum(curr->left); 
    } 

    return curr; 

} 

내가 이미 잘하고 printpostorder, inorderr, 전순 벌금을 삽입 않았다 의미한다.

바보 같은 짓을하고 있습니까? 이것은 단지 루트 노드를 인쇄합니다.

답변

2

Minimum을 호출하고 반환 값을 버립니다. return Minimum(curr->left);을 원합니다. 그런데

, 난 강력하게 다음과 같이 재귀 적으로 반복하기보다는이 일을 추천합니다 : if (! curr-> 왼쪽 = NULL) { 수익률 (최소 (CURR :

Node* node = curr; 
    while (node->left != NULL) 
     node = node->left; 
    return node; 
+0

흠 내가 그것을 변경 -> 왼쪽)); }하지만이 줄을 실행하면 실행에 실패했습니다. –

+0

"실행 실패"라는 "it"은 무엇입니까? 이것은 당신의 산출물을 검증하는 일종의 제출 시스템입니까? –

+0

cygwin 및 g ++ 및 netbeans 사용. 그 행에 도달하면 실행이 실패했다고 말합니다. 제 생각에는 세분화 오류가 있음을 의미합니다. –