Page 236 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 236
조금만 더! int a = (1, 2)는 어떻게 동작하나요?
int a = (1, 2);
위의 코드를 실행하면 a에는 값 2가 대입됩니다. 이 코드를 풀어쓰면 다음과 같습니다.
int a = 1;
a = 2;
위의 코드에서는 Pop 함수를 첫 번째 인자로, 변수 left를 두 번째 인자로 사용하여 코드 한 줄에서 함수
실행과 left의 값을 pl에 대입했습니다. 즉, 다음과 같습니다(Pop 함수를 실행하면 left 값에 팝한 값을 대입합니
다).
int pl = Pop(&lstack, left);
pl = left;
연습 Q14 실습 6-10을 수정하여 푸시, 팝, 분할 과정을 출력하는 프로그램을 작성하세요.
문제
스택의 용량
실습 6-10의 프로그램은 스택의 용량을 배열의 요소 개수로 초기화합니다. 그러면 스택의 용
량은 어느 정도의 크기여야 하는지 알아보겠습니다. 그림 6-23은 배열을 나누는 과정이며, 이
배열을 예로 들어 살펴보겠습니다(피벗의 값은 2).
0 1 2 3 4 5 6 7
6 5 4 2 7 3 1 8
0 1 2 3 4 5 6 7
1 2 4 5 7 3 6 8
0 1 2 3 4 5 6 7
1 2 4 5 6 3 7 8
2 3 4 5 6 7
4 3 6 5 7 8
2 3 4 5
3 4 5 6
[그림 6-23] 퀵 정렬
236 C 알고리즘