재귀에 대한 생각.
2020. 11. 4. 23:52ㆍ컴퓨터 수업/C++
재귀를 어떻게 사용하는가?
라는 질문은 다시 재귀를 왜 사용하는가?
라는 질문은 다시 전방재귀랑 후방재귀의 사용법으로 귀결된다.
-
먼저 내가 전방재귀와 후방재귀를 expand해서 (#include <header>와 같이) 해석해봐야된다.
전방재귀는 어떤, stack의 역할을 수행한다.
그렇다면, 후방재귀는?
후방재귀야 말로, 개인적으로 생각하기엔, 재귀의 역할을 가장 잘 수행한다.
후방재귀는 buffer의 역할을 수행한다.
후방재귀는 "마치 미지의값을 아는 것 처럼 행동"한다.
Fibonacci 재귀함수 구현을 기억하는가?
return Fib(num -1)만 보고 생각해보자면, 나는 Fib(num-1)를 알지 못한다,
하지만 컴퓨터가 알거라는 "믿음"을 가지고, 해당 재귀를 사용하는것이다.
마치 while가 for문이 종료조건을 두고, while이 조금 더 모호하지만, 편한것처럼
재귀함수는 그런식으로 elegant하고 코드스타일의 편함을 제공한다.
(물론, efficient의 문제가 발생하고, 지역성이론에 위배되어 cache에 부담을 주지만.)
'컴퓨터 수업 > C++' 카테고리의 다른 글
virtual , 업/다운 캐스팅, 정적타입바인딩, 추상클래스 ★ (0) | 2020.11.10 |
---|---|
C++ 상속 (0) | 2020.11.05 |
Outer, Inner Class의 생성자와 소멸자 호출 타이밍 (0) | 2020.11.04 |
문자열 관리 {char*, char[] , string} (0) | 2020.11.04 |
How will we deal with "Past-happened" problem (0) | 2020.11.04 |