本文へジャンプ
  • ながの子育て応援宣言
  • 行動宣言募集
  • 婚活サポーター募集中
  • 婚活の秘訣
  • ながの結婚支援ネットワーク

投稿

재귀 함수 예제

2019年8月3日

부울 & (AND) 연산자의 단락 평가를 사용하여 노드가 유효한 경우에만 재귀 호출이 수행되도록 합니다(Null이 아닌 경우). AND의 첫 번째 용어는 노드에 대한 포인터이지만 두 번째 용어는 bool이므로 전체 식은 bool로 평가됩니다. 이것은 재귀 단락에서 일반적인 관용구입니다. 이것은 부울의 단락 평가에 추가됩니다 || (OR) 연산자는 왼쪽 자식이 실패할 때만 오른쪽 자식을 확인합니다. 실제로 이러한 함수의 전체 제어 흐름은 반환 문에서 단일 부울 식으로 대체할 수 있지만 가독성은 효율성에 아무런 이점도 없습니다. 재귀 알고리즘은 재귀 알고리즘으로 대체할 수 있습니다. [20]. 재귀 알고리즘을 대체하는 한 가지 방법은 스택 메모리 대신 힙 메모리를 사용하여 시뮬레이션하는 것입니다. [21] 대안은 전적으로 비재귀 방법을 기반으로 대체 알고리즘을 개발하는 것입니다.

[22] 예를 들어, Rich Salz의 와일드매트 알고리즘과 같은 와일드카드 일치를 위한 재귀 알고리즘[23]은 한때 일반적이었습니다. 와일드카드 알고리즘과 일치하는 Krauss와 같은 동일한 목적을 위한 재귀 알고리즘은 재귀의 단점을 피하기 위해 개발되었으며[24] 테스트 수집 및 프로파일링 성능과 같은 기술에 따라 점차적으로 개선되었습니다. [25] 재귀란 무엇인가? 함수가 직접 또는 간접적으로 자신을 호출하는 프로세스를 재귀라고 하며 해당 함수를 재귀 함수라고 합니다. 재귀 알고리즘을 사용하면 특정 문제를 매우 쉽게 해결할 수 있습니다. 이러한 문제의 예로는 하노이 타워(TOH), 주문/주문/주문 후 트리 순회, 그래프 DFS 등이 있습니다. 간접 재귀는 상호 재귀라고도하며, 이는 더 대칭적인 용어이지만 단순히 강조의 차이이며 다른 개념이 아닙니다. 즉, f가 g를 호출한 다음 g를 호출하면 f만으로는 g를 다시 호출하고, f는 간접적으로 재발하는 반면, g만으로는 간접적으로 재발하는 반면, 두 가지 모두의 관점에서 는 간접적으로 재발합니다. , f와 g는 서로 에 재발한다. 마찬가지로 서로를 호출하는 세 개 이상의 함수 집합을 상호 재귀 함수 집합이라고 할 수 있습니다.

팩트(10)가 호출되면 팩트(9), 팩트(8), 팩트(7) 등을 호출하지만 숫자는 100에 도달하지 않습니다. 따라서 기본 케이스에 도달하지 못했습니다. 스택에서 이러한 함수에 의해 메모리가 소진되면 스택 오버플로 오류가 발생합니다. 단락의 기본 예는 이진 트리의 깊이 우선 검색(DFS)에서 제공됩니다. 표준 재귀 토론은 이진 트리 섹션을 참조하십시오. 스프레드시트 열이 `0` 숫자를 제대로 처리하지 못하기 때문에 소리보다 까다롭습니다.

グローバルメニューへジャンプ

ページのトップへ