2012-12-27 3 views
0

이 두 가지의 차이점은 무엇입니까?재귀 딜레마

int find_set (int v) 
{ 
    if (v == parent [ v ]) 
     return v ; 
    return parent [ v ] = find_set (parent [ v ]) ; 
} 

그리고 : @Omri에 의해 명시된 바와 같이

int find_set (int v) 
{ 
    if (v == parent [ v ]) 
     return v ; 
    parent [ v ] = find_set (parent [ v ]) ; 
} 
+6

'if' 문이 실패하면 두 번째 문에는'return' 문이 없습니다. 그게 당신이 의미 한 것입니까? –

답변

4

의 차이는, 두 번째는 (희망) 컴파일러 오류에 대한 당신을 떠나 if 문이 실행되지 않을 경우에는 반환이없는 것입니다 반환 값이없는 코드 경로 Ruby와 같은 언어와 달리 C++ 메소드 나 함수의 마지막 문은 암시 적으로 반환 값이 아닙니다.