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

0   1   2   3    4   5    6   7    8   9    10   11   12
                          -   14   -   29   -   ★    6   18   34   -   75   37   51


                                                 원하는 값을 찾을 때까지 재해시를 반복합니다.
                                            [그림 11-11] 오픈 주소법 검색


                        오픈 주소법을 구현하는 프로그램의 헤더 ClosedHash.h가 실습 11-6, 소스 ClosedHash.c
                        가 실습 11-7입니다.

                           이 프로그램을 컴파일하려면 Member.h, Member.c, ClosedHash.h, ClosedHash.c가 필요합니다.



                          실습 11-6                                             •완성 파일 chap11/ClosedHash.h

                         01  /* 오픈 주소법으로 구현한 해시(헤더) */
                         02  #ifndef ___ClosedHash
                         03  #define ___ClosedHash
                         04
                         05  #include "Member.h"
                         06
                         07  /*--- 요소의 상태 ---*/
                         08  typedef enum {
                         09    Occupied, Empty, Deleted
                         10  } Status;
                         11
                         12  /*--- 요소 ---*/
                         13  typedef struct {
                         14    Member data;        /* 데이터 */
                         15    Status stat;        /* 요소의 상태 */
                         16  } Bucket;
                         17
                         18  /*--- 해시 테이블 ---*/
                         19  typedef struct {
                         20    int size;           /* 해시 테이블의 크기 */
                         21    Bucket *table;       /* 해시 테이블의 첫 번째 요소에 대한 포인터 */
                         22  } ClosedHash;
                         23
                         24  /*--- 해시 테이블 초기화 ---*/
                         25  int Initialize(ClosedHash *h, int size);
                         26
                         27  /*--- 검색 ---*/





                                                                                          11•해시  453
   448   449   450   451   452   453   454   455   456   457   458