더북(TheBook)

3.3.5 연습 문제 15: 뻐꾸기 해싱

이번 연습 문제에서는 뻐꾸기 해싱을 이용하여 해시 테이블을 만들고 다양한 원소를 삽입해보겠습니다. 삽입 함수의 동작을 눈으로 확인하기 위하여 부가적인 문자열 출력 코드도 추가하겠습니다.

  1. 먼저 필요한 헤더 파일을 포함합니다.

#include <iostream>
#include <vector>

  2. 해시 맵 클래스를 정의합니다. 두 개의 해시 테이블을 사용할 것이고, 각 테이블 크기를 멤버로 저장하겠습니다.

class hash_map
{
    std::vector<int> data1;
    std::vector<int> data2;
    int size;

  3. 두 개의 해시 함수를 정의합니다.

int hash1(int key) const
{
    return key % size;
}

int hash2(int key) const
{
    return (key / size) % size;
}

여기서는 단순한 형태의 해시 함수를 사용했습니다. 해시 함수는 필요에 따라 적절한 형태로 구성하면 됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.