[C언어] 연결법을 이용한 해싱 프로그램

이미지
준비중입니다.
※ 미리보기 이미지는 최대 20페이지까지만 지원합니다.
  • 분야
  • 등록일
  • 페이지/형식
  • 구매가격
  • 적립금
자료 다운로드  네이버 로그인
소개글
[C언어] 연결법을 이용한 해싱 프로그램에 대한 자료입니다.
목차
#define MAX_HT 10 /*해싱테이블의 최대크기*/
#define MAX_STR 100 /*문자열의 최대크기*/

typedef struct _entry *etyptr;

etyptr ht[MAX_HT]; // 해싱 테이블 생성

typedef struct _entry { // 레코드를 저장할 구조체
char *name; // 이름
int id; // 학번
char *major; // 전공
etyptr nextentry; // 다음 노드
} entry;


int hashing_func(int a){ return a%MAX_HT; } // 해싱 함수. 모듈러 연산을 이용하여 인덱스를 반환함.

void load_file(); // 파일 로드 함수.
void insert_data(); // 해싱 테이블에 입력받은 데이터를 저장하는 함수.
void find_data(); // 데이터 검색 함수.
void delete_data(); // 데이터 삭제 함수.
void save_data(); // 데이터를 파일에 저장하는 함수.
void inputToht(etyptr temp); // 해싱 테이블에 데이터를 저장하는 함수.

void init_ht(); // 해싱 테이블 초기화 함수.
void deleteHT(); // 해싱 테이블 삭제 함수.
etyptr search_data(int id, int index); // 해싱 테이블에서 데이터를 찾아주는 함수.

int Get_intData(); // 정수형 데이터를 받아오는 함수.
void Get_String(char *strtemp); // 문자열을 받아오는 함수.
void _strcpy(char *a, char *b); // 문자열을 복사하는 함수.
본문내용
void init_ht()
해싱테이블을 초기화 하는 함수. 체인법을 이용하여 오버플로우를 제어하므로 초기에는 모두 NULL을 가르키도록 한다.
void deleteHT()
해싱테이블을 삭제하는 함수. malloc으로 할당된 메모리를 모두 해제시켜주는 역할을 하는 함수이다.
void load_file()
파일을 해싱테이블에 저장하여 주는 함수. 파일이름을 입력받아 해당 파일을 열고, 그 내용을 해싱테이블에 체인법을 이용하여 저장하여주는 역할을 한다.
void inputToht(etyptr temp)
해싱테이블에 체인법을 이용하여 레코드를 저장하여 주는 함수. 인덱스는 모듈러 연산을 사용하는 해싱 함수를 이용하여 받아오고, 해당 인덱스에 체인법을 이용하여 레코드를 저장한다. 새로운 레코드는 앞부분에 삽입도록 하여 삽입 속도를 빠르게 유지시켜 준다.
void insert_data()
데이터를 직접입력 받아와 해싱테이블에 저장하여주는 함수. 데이터는 직접 입력 받아 레코드에 저장하고, 학번을 이용하여 인덱스를 찾아 해당 위치에 레코드를 연결하여 준다.
etyptr search_data(int id, int index)
해싱테이블에서 학번을 이용한 데이터 탐색을 해주는 함수. 파라미터로 검색할 학번과 테이블의 인덱스를 받아와 연결된 레코드들에서 검색을 하고 결과를 리턴하여 준다. 리턴 노드는 목표노드의 전노드이다.
void find_data()
학번을 이용하여 해싱테이블에서 데이터를 검색하는 함수. 정수형의 여덜자리 학번을 입력받아 탐색함수를 이용하여 결과를 받아온 후 출력하여주는 함수이다.
void delete_data()
학번을 입력받아 해당 데이터를 해싱테이블에서 삭제하는 함수. 학번을 입력하면 탐색함수를 이용해서 해당 노드의 전 주소를 받아온다. 그 주소를 이용하여 다음 노드를 삭제하여 준다.
void save_data()
해싱테이블의 데이터들을 파일에 저장하는 함수. 저장할 파일이름을 입력 받아서 현재 해싱테이블에 있는 데이터를 저장하여 준다.
int Get_intData()
정수값을 입력받아야 하는 경우 정상적인 입력이 이루어 졌는 지 검사 한 후 atoi함수를 이용하여 해당 정수값을 반환하여 주는 역할을 하는 함수. 최초 입력은 string으로 받아온다.
void _strcpy(char *a, char *b)
문자열을 파라미터로 받아와 복사하여 주는 함수.
void Get_String(char *strtemp)
문자열을 입력받는 함수. 파라미터로 받아온 배열에 문자열을 입력받아 저장하여주는 역할을 한다.