C빈칸 채우기보통 · 20점#스택#큐#배열#연산자

92. 배열로 만든 스택과 원형 큐

다음은 배열과 인덱스 변수로 스택과 원형 큐를 구현한 C 프로그램이다. 실행 결과가 "30 -1", "20 10 70 f=0 r=0" 두 줄이 되도록 빈칸 ①에 들어갈 식과 빈칸 ②에 들어갈 연산자를 쓰시오.

1#include <stdio.h>
2#define SIZE 4
3
4int stack[SIZE];
5int top = -1;
6int queue[SIZE];
7int front = 0, rear = 0;
8
9void push(int v) {
10 stack[++top] = v;
11}
12
13int pop(void) {
14 return stack[( ① )];
15}
16
17void enqueue(int v) {
18 rear = rear + 1;
19 if (rear == SIZE) rear = 0;
20 queue[rear] = v;
21}
22
23int dequeue(void) {
24 front = (front + 1) ( ② ) SIZE;
25 return queue[front];
26}
27
28int main(void) {
29 int i, x;
30 for (i = 1; i <= 3; i++) {
31 push(i * 10);
32 }
33 x = pop();
34 push(x + 5);
35 for (i = 0; i < 3; i++) {
36 enqueue(pop());
37 }
38 printf("%d %d\n", x, top);
39 x = dequeue();
40 enqueue(x * 2);
41 for (i = 0; i < 3; i++) {
42 printf("%d ", dequeue());
43 }
44 printf("f=%d r=%d\n", front, rear);
45 return 0;
46}

해설을 먼저 보면 이후 정답 시 점수가 50%만 반영됩니다.