2024/10/15 3

해쉬 테이블 - Collison 문제 해결책

오픈 어드레싱 방법(Open addressing method)오픈 어드레싱 방법은 충돌이 발생하면 다른 자리에 대신 저장한다는 의미가 담겨있다. 선형 조사법과 이차 조사법선형 조사법이란?충돌이 발생했을 때 옆자리가 비었는지 살펴보고, 비었을 경우 그 자리에 대신 저장하는 것이다. 예를 들어서 다음과 같이 정의된 함수 f(x)가 있고 테이블의 내부 저장소가 배열이라고 가정해보자. 해쉬 함수 key % 7 그러면 키가 9인 데이터는 해쉬 값이 2이므로 인덱스가 2인 위치에 저장된다. 이어서 키가 2인 데이터가 등장했다고 가정하면, 이 경우 해쉬 값이 2이기 때문에 앞서 저장한 키가 9인 데이터와 충돌이 발생한다. 이렇듯 충돌이 발생했을 때 인덱스 값이 3인 바로 옆자리를 살피는 것이 선형 조사법이다. 따라서..

테이블과 해쉬

테이블이란? 테이블이란 영어를 단순 번역하면 표이다. 하지만 자료구조에서 으래 말하는 테이블의 이해하기 좋은 대표적인 예는 사전을 생각하면 된다. 사전에서 단어는 Key가 되고, 단어의 뜻이나 내용은 Value가 된다. 즉 테이블에 저장되는 데이터는 Key와 Value가 하나의 짝을 이루는 것이다. 배열을 기반으로 하는 테이블 테이블 자료구조를 배열을 기반으로 제작하여 누구나 쉽게 이해할 수 있는 예제는 아래와 같다. #include #pragma warning(disable:4996) typedef struct _empInfo { int empNum; int age; } EmpInfo; int main(void) { EmpInfo empInfoArr[1000]; EmpInfo ei; int eNum; ..