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 알고리즘
   231   232   233   234   235   236   237   238   239   240   241