학교과제로 했던 해쉬를 이용한 간단한 주소록이다...(그냥 이름, 전화번호 정보 추가, 삭제, 검색정도...)
해싱함수는 제산 잔여 해싱 기법을 사용했는데 제대로 한건지도 모르겠다;;;
해싱함수에 쓰이는 Key값은 MultiByteToWideChar() 함수를 이용했다...
MultiByteToWideChar()함수로 문자열(이름)을 유니코드로 변경하는데 사용했다...
한글기준 이름 3자를 입력받는다는 가정으로...이름 한자씩을 유니코드로 변환하고 그 값을 모두 합해서 버킷수로 나머지 연산을 해서 버킷주소를 생성하는식으로 코딩했다...
이름이 3자 이하일때가 문제가 되지만...이름에서 성 부분만 키값으로 사용하거나 하면 너무 한쪽으로 몰려서 그냥 저렇게 해버렸다 ㅡㅡ
data.txt 파일에 이름을 입력해 놓으면 파일입력으로 데이터를 입력받을 수 있다...(이때 전화번호는 랜덤생성...)
아래 스샷은 입력된 데이터를 파일출력했을때 결과이다...
(사용언어 : C++)