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

실습 11-5는 체인 해시를 사용하는 프로그램입니다.

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

                     실습 11-5                                           •완성 파일 chap11/ChainHashTest.c

                     01  /* 체인 해시(ChainHash)의 사용 */
                     02  #include <stdio.h>
                     03  #include "Member.h"
                     04  #include "ChainHash.h"
                     05
                     06  /*--- 메뉴 ---*/
                     07  typedef enum {
                     08     TERMINATE, ADD, DELETE, SEARCH, CLEAR, DUMP
                     09  } Menu;
                     10
                     11  /*--- 메뉴 선택 ---*/
                     12  Menu SelectMenu(void)
                     13  {
                     14     int ch;
                     15     do {
                     16        printf("(1)  추가 (2)  삭제 (3)  검색 (4)  모두 삭제 (5)  덤프 (0)  종료 : ");
                     17        scanf("%d", &ch);
                     18     } while(ch < TERMINATE || ch > DUMP);
                     19     return(Menu)ch;
                     20  }
                     21
                     22  /*--- 메인 ---*/
                     23  int main(void)
                     24  {
                     25     Menu menu;             /* 메뉴 */
                     26     ChainHash hash;         /* 해시 테이블 */
                     27     Initialize(&hash, 13);   /* 해시 테이블 초기화 */
                     28     do {
                     29       int result;
                     30       Member x;
                     31       Node *temp;
                     32       switch(menu = SelectMenu()) {
                     33       case ADD :           /*--- 데이터 추가 ---*/
                     34         x = ScanMember("추가", MEMBER_NO | MEMBER_NAME);
                     35         result = Add(&hash, &x);
                     36         if(result)





                   446   C 알고리즘
   441   442   443   444   445   446   447   448   449   450   451