시작
자료구조 두번째 포스팅입니다.
인트로보다 짧아서 부담이 덜하네요 ㅎㅎ..
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/2.jpg)
재귀
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/3.jpg)
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/4.jpg)
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/5.jpg)
어떻게 보면 이상하지만 자기 자신을 호출할 수 있습니다.
특징
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/6.jpg)
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/7.jpg)
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/8.jpg)
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/9.jpg)
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/10.jpg)
여기에서 설명할 내용은 아니지만, 함수를 호출할때 현재 실행 위치와 정보들을 스택에 담습니다.
그리고 호출한 함수가 끝나면 스택에서 다시 뽑아서 그 상태로 복귀합니다.
하지만 끝나지 않고 계속해서 자기 자신을 호출한다면 스택이 계속해서 차면서 여유 메모리가 없는경우 스택 오버플로우가 발생하여 죽게됩니다.
자세한 내용은 운영체제에서 확인하실 수 있습니다.
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/11.jpg)
팩토리얼
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/12.jpg)
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/13.jpg)
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/14.jpg)
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/15.jpg)
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/16.jpg)
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/17.jpg)
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/18.jpg)
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/19.jpg)
정리
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/20.jpg)
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/21.jpg)
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/22.jpg)
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/23.jpg)
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/24.jpg)
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/25.jpg)
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/26.jpg)
![](/2018/07/15/2018-20180715-Data-Structure-Recursion/27.jpg)