스택은 쌓다는 의미로 데이터를 쌓아 올린 형태의 자료구조이다. LIFO로 나중에 넣은 값을 먼저 내보내는 구조이다.
큐는 자료구조의 종류 중 하나인 FIFO 구조로 먼저 넣은 것이 먼저 나오는 구조이다.
스택 영역에 차례대로 저장되는 함수의 호출 정보를 말한다. 함수가 종료되면 스택 프레임은 소멸된다.
함수의 값을 return 하여 함수 작동이 끝날 때까지 반복된다. 주로 Factorial을 구할 때 재귀 함수를 많이 사용한다.
private void Start() { print($"최종 값 : {Factorial(5)}"); } private int Factorial(int x) { int result = 0; print($"호출시작 : {x}"); if (x == 1) result = 1; else result = x * Factorial(x - 1); print($"호출완료 : {x}, {result}"); return result; }
호출시작 : 5
호출시작 : 4
호출시작 : 3
호출시작 : 2
호출시작 : 1
호출완료 : 1,1
호출완료 : 2,2
호출완료 : 3,6
호출완료 : 4,24
호출완료 : 5,120
최종 값 : 120