재귀함수와 스택, 스택 프레임에 대한 개념 자연수 N이 주어지면 아래와 같이 출력 입력예제 3 출력예제 1 2 3 만약 코드를 이렇게 작성하면 #include #include #include using namespace std; void recur(int x) { if (x == 0) return; else { cout n; recur(n); return 0; } 결과가 3 2 1 로 출력된다. 그러면 1 2 3 으로 출력되게 하려면 어떻게 해야할까? 이렇게 두 코드의 위치를 서로 변경해주면 된다. 어떤 원리로 이렇게 되는 것일까? 그 이유는 재귀는 스택이라는 자료구조를 사용하면서 운영하기 때문이다. 그런데 위 그림은 대략 이런 원리로 돌아간다는 거지 재귀함수 스택 개념을 제대로 설명한 것은 아니다. 어..
top = -1로 시작 top = -1; void push(int x) { stack[++top] = x; } int pop() { return stack[top--]; } #include 하면 해당 함수를 사용할 수 있다. 문제 : K진수 출력 10진수 N이 입력되면 K진수로 변환하여 출력하는 프로그램 작성 (100) { s.push(n % k); n = n / k; } while(!s.empty()) { printf("%c", str[s.top()]); s.pop(); } return 0; } 문제 : 올바른 괄호 괄호가 입력되면 올바른 괄호이면 "YES", 올바르지 않으면 "NO"를 출력한다. (())()는 YES, (()()))는 NO 스택을 이용해서 문제풀이 #include #include #i..