Page 157 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 157

검색 함수 Search

                        Search 함수는 큐의 배열에서 x와 같은 데이터가 저장되어 있는                     num = 7
                                                                                0   73
                        인덱스를 반환하는 합수입니다. 검색에 성공하면 찾은 요소의 인                      1   19       맨 끝
                                                                                ❷
                        덱스를 반환하고, 실패하면 –1을 반환합니다. 그림 4-16과 같이                   3
                                                                                4
                        처음부터 선형 검색을 수행합니다. 물론 검색의 시작 지점은 배                      5
                                                                                6
                        열의 첫 요소가 아니라 큐의 첫 요소입니다. 현재 검색하는 위치                     ❼   35       맨 처음
                                                                                8   56
                        의 인덱스를 구하는 식은 (i + q->front) % q->max입니다.               9   24
                                                                                    68
                                                                                10
                                                                                11  95
                           오른쪽 그림에서 볼 수 있듯이 for문의 반복 횟수에 따라 i와 인덱스 값이 아래처
                        럼 변화합니다.
                                                                                   [그림 4-16] 큐에서 검색
                         i        0 ⇨ 1 ⇨ 2 ⇨  3 ⇨  4 ⇨ 5 ⇨ 6
                         인덱스      7 ⇨ 8 ⇨ 9 ⇨ 10 ⇨ 11 ⇨ 0 ⇨ 1



                        모든 데이터를 출력하는 함수 Print
                        Print 함수는 큐의 모든 데이터를 처음부터 끝까지 순서대로 출력하는 함수입니다.

                           현재 검색하는 위치의 인덱스 계산 방법은 Search 함수와 같습니다.

                        종료 함수 Terminate

                        Terminate 함수는 메모리 공간에 할당한 배열(큐)을 해제하는 함수입니다.


                        큐를 사용하는 프로그램

                        큐를 사용하는 프로그램을 만들어 보겠습니다. 그 예가 실습 4-6입니다.
                           이 프로그램의 컴파일에는 IntQueue.h와 IntQueue.c가 필요합니다


                          실습 4-6                                             •완성 파일 chap04/IntQueueTest.c

                         01  /* int형 큐 IntQueue를 사용하는 프로그램 */
                         02  #include <stdio.h>
                         03  #include "IntQueue.h"
                         04
                         05  int main(void)
                         06  {
                         07    IntQueue que;
                         08
                         09    if(Initialize(&que, 64) == -1) {
                         10      puts("큐의 생성에 실패하였습니다.");






                                                                                        04•스택과 큐  157
   152   153   154   155   156   157   158   159   160   161   162