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
   428   429   430   431   432   433   434   435   436   437   438