Page 433 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 433
21 printf("%d %s", x->no, x->name);
22 }
23
24 /*--- 회원 데이터(번호와 이름)를 출력(줄 바꿈 있음) ---*/
25 void PrintLnMember(const Member *x)
26 {
27 printf("%d %s\n", x->no, x->name);
28 }
29
30 /*--- 회원 데이터(번호와 이름)를 읽어 들임 ---*/
31 Member ScanMember(const char *message, int sw)
32 {
33 Member temp;
34 printf("%s하는 데이터를 입력하세요.\n", message);
35 if(sw & MEMBER_NO) {printf("번호 : "); scanf("%d", &temp.no);}
36 if(sw & MEMBER_NAME) {printf("이름 : "); scanf("%s", temp.name);}
37 return temp;
38 }
각 함수에 대한 정의는 다음과 같습니다.
1. MemberNoCmp 함수 : 2개의 회원 데이터에서 ‘번호’의 대소 관계를 판단하는 비교 함수입니다.
2. MemberNameCmp 함수 : 2개의 회원 데이터에서 ‘이름’의 대소 관계를 판단하는 비교 함수입니다.
3. PrintMember 함수 : 번호와 이름을 출력하는 함수입니다.
4. PrintLnMember 함수 : 번호와 이름을 출력하는 함수입니다. 끝에 줄 바꿈 문자를 출력합니다.
5. ScanMember 함수 : 번호와 이름 가운데 하나 혹은 둘 모두를 대화형으로 읽어 들이는 함수입니다.
이번 장의 프로그램에서는 위에서 구현한 함수 중 일부 함수는 사용하지 않고 09장의 ‘연결
검색’과 10장의 ‘이진검색트리’ 프로그램에서 사용했습니다.
체인법
체인법(chaining)은 같은 해시 값을 갖는 데이터를 쇠사슬(chain) 모양으로 연결 리스트에서
연결하는 방법으로, 오픈 해시법(open hashing)이라고도 합니다.
11•해시 433