Page 458 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 458
22 /*--- 메인 ---*/
23 int main(void)
24 {
25 Menu menu; /* 메뉴 */
26 ClosedHash hash; /* 해시 테이블 */
27 Initialize(&hash, 13); /* 해시 테이블 초기화 */
28 do {
29 int result;
30 Member x;
31 Bucket *temp;
32 switch(menu = SelectMenu()) {
33 case ADD : /*--- 데이터 추가 ---*/
34 x = ScanMember("추가", MEMBER_NO | MEMBER_NAME);
35 result = Add(&hash, &x);
36 if(result)
37 printf("\a오류 : 추가에 실패했습니다(%s).\n",
38 (result == 1) ? "등록 마침" : "메모리 부족");
39 break;
40
41 case DELETE : /*--- 데이터 삭제 ---*/
42 x = ScanMember("삭제", MEMBER_NO);
43 result = Remove(&hash, &x);
44 if(result == 1)
45 printf("\a오류 : 이 번호의 데이터는 존재하지 않습니다.\n");
46 break;
47
48 case SEARCH : /*--- 데이터 검색 ---*/
49 x = ScanMember("검색", MEMBER_NO);
50 temp = Search(&hash, &x);
51 if(temp == NULL)
52 printf("\a검색에 실패했습니다.\n");
53 else {
54 printf("검색에 성공했습니다. : ");
55 PrintLnMember(&temp->data);
56 }
57 break;
58
59 case CLEAR : /*--- 모든 데이터 삭제 ---*/
60 Clear(&hash);
61 break;
62
458 C 알고리즘