2016-11-19 2 views
0

나는 일반적으로 OOP와 Python을 처음 접했고 다음 코드를 이해하는데 어려움이있다. HackeRank 문제에 사용됩니다. 나는 그 선언 안에서 어떻게 수표가 사용되는지를 알지 못한다. 부울을 반환하기로되어 있습니다.선언 내에서 함수 호출하기

def check(root,mini,maxi): 
     return(root==None or 
     (check(root.left,mini,root.data) and 
     check(root.right,root.data,maxi))) 
+2

재귀라고합니다. https://en.wikipedia.org/wiki/Recursion_(computer_science) –

+2

찾고있는 검색어는 "재귀"입니다. 그것에 대해 읽으십시오. – user2357112

답변

0

자체 내에서 함수는 함수가 이전에 call.This 재귀를 실행중인 다음 다시 그것으로 자신을 호출 자체 내에서 호출 recursion.When라고하여 각 함수 호출의 스택 및 완료의 각 재귀 함수 호출을 밀어 함수에 대한 최후의 호출이되는 스택의 맨 위에있는 함수 호출의 팝이 생깁니다. 그래서 덩어리 수표가 자체 내에서 호출되면 검사 할 다른 호출이 활성화되고이 호출에 의해 반환 된 값이 호출 된 호출에서 사용됩니다. 프로그램의 조건에 따라 횟수에 관계없이 발생할 수 있습니다. 이게 도움이 되길 바란다. 또는 재귀에 대해 읽을 수도 있습니다.

1

재귀에 대한 @ helptaker의 설명을 볼 수 있습니다. 이 경우 함수가 비어 있지 않으면 함수가 데이터의 왼쪽과 오른쪽 절반을 검사한다고 가정합니다. 그런 다음 재귀 호출의 결과를 가져와 결합합니다.

예를 들어, 기본 케이스는 root==None 일 때 데이터가 충분히 작아지는 경우 일 수 있습니다. 그렇지 않으면,이 함수는 두 가지 더 작은 크기의 문제로 스스로를 호출합니다. 이 두 재귀 호출은 결과를 반환하고 함수는 그 결과를 기반으로 반환 값을 결정합니다.

결론적으로이 함수는 문제를 더 작고 작은 조각으로 분해하여 결과를 결합하여 각각을 해결합니다. Google에서 "재귀"를 검색하면

(심지어 "가 표시됩니다 :

여기

재귀 일부 자원의 당신은 의미 했는가 : recursio n "예)

관련 문제