[재귀함수] - 1

실버타운·2023년 6월 1일

C++

목록 보기
2/10
post-thumbnail

결괏값

  • return 값이 있는 함수의 경우
return 해야하는 함수의 결과값은 레지스터에 저장된다.
↓
함수가 종료되고 main 으로 돌아올 경우 레지스터에 저장된 결괏값을 가져와 변수에 반영한다.

재귀함수

  • 함수가 종료되기 전에 함수 내에서 자기자신을 다시 호출하는 유형 (아래는 재귀함수 예시이다.)

팩토리얼

피보나치 수열 (아래 재귀함수는 굉장히 문제가 많다. 예시로만 생각하자.)

  • 재귀함수에는 반드시 탈출 조건이 필요하다.
탈출 조건이 없는 경우 무한루프에 빠진다. (Stack overflow를 발생시킨다.)
  • 장점
반복문에 비해 가독성이 좋고, 구현이 용이하다. (계층구조에서 많이 사용한다.)
  • 단점
실수의 여지가 있다. (Stack overlow)
함수 호출, 해제 비용이 늘어난다. (성능 저하의 원인이 될 수 있다.)

심화적인 내용은 계층구조 표현에서 다룰 예정

  • Tree 내부 탐색
  • 후속자, 선행자 찾기
  • 꼬리재귀
    . . .
profile
개발 공부 일지

0개의 댓글