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

  • 등록일 / 수정일
  • 페이지 / 형식
  • 자료평가
  • 구매가격
  • 2007.11.07 / 2019.12.24
  • 5페이지 / fileicon zip (압축파일)
  • est1est2est3est4est5 1(구매금액의 3%지급)
  • 1,200원
다운로드장바구니
Naver Naver로그인 Kakao Kakao로그인
[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)
문자열을 입력받는 함수. 파라미터로 받아온 배열에 문자열을 입력받아 저장하여주는 역할을 한다.
자료평가
  • 자료평가0자료평가0자료평가0자료평가0자료평가0
  • 1
  • lionraf***
    (2007.12.10 00:45:08)
회원 추천자료
  • [컴공] 커널 컴파일의 모든것!! 해부한다
  • 프로그램에서는 일반적으로 숫자를 나타내는데 이진수를 쓰기 보다는 다른 진법인 십육진수를 사용한다. 십육진법에서는 각 숫자가 16의 몇제곱승을 나타낸다. 숫자는 0부터 9까지만 있으므로 10부터 15까지는 문자 A, B, C, D, E, F로 표시한다. 예를들어 십육진수 E는 십진수로 14이고, 십육진수 2A는 숫자 42(16짜리 2개 + 10)이 된다. C 프로그래밍 언어에서는 십육진수 앞에 0x를 붙여서 구별한다. 즉 십육진수 2A는 0x2A라고 쓴다. 이 책에서는 이 표기법을

  • 정보처리산업기사필기기출문제(데이타베이스)
  • 언어 중에서 독자적이고 상호 작용 형태로 터미널에서 많이 사용하고 있는 고급명령어 형태의 독립된 데이터 조작어를 무엇이라 하는가?가. 데이터 제어어 나. 데이터 부속어다. 호스트 언어 라. 질의어 3. 오버플로 처리방법 중에서 여러 개의 해싱함수를 준비하였다가 충돌 발생시 새로운 해싱함수를 적용하여 새로운 해시표를 생성하는 방법은?가. 개방주소 방법 나. 이차검색방법다. 재해싱방법 라. 체인방법 4. 다음 설명은 무엇을 말하는가?

  • [정보통신]정보처리산업기사필기기출문제(시스템분석및설계)
  • 프로그램기술언어(DDL)에 관한 설명으로 거리가 먼 것은?가. 모듈의 논리를 설계할 때 사고과정을 체계화해 가는 방법론 중 하나이다.나. 추상적인 개념으로부터 구체적이고 정형화된 형태로 문서화하거나 시스템설계이다.다. 논리전개를 하향식으로 표현 가능하다.라. 문법상 제약을 고려할 필요가 업고 특정프로그램에 대한 지식이 없어도 된다.53. HIPO는 일반적으로 세가지로 구성된 패키지 형태로 되어 있는데, 이에 해당하지 않는 것은?가. 도식

  • [정보처리기사] 정보처리기사 과목별 문제분석
  • 프로그램이나 사용자가 공용할 수도 있다.■ 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용한다.■ 일반 사용자는 질의어(SQL)를 이용하여 DB를 쉽게 사용할 수 있다.■ 응용 프로그래머는 COBOL, C 등의 언어를 사용하여 DB에 접근한다.☞개념 스키마(Conceptual Schema) = 전체적인 뷰(View)■ 개념 스키마는 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의

  • (인적자원관리 2학년) 최근에는 조직의 인적자원관리 분야에도 인공지능(AI)이 도입되고 있다. HR분야에 인공지능이 도입된 사례 하나를 선정하여 소개하고, 조직과 구성원에게 미치는 영향을 분석한 후, 나아갈 방향을 제시하시오.
  • 미래의 진화 방향. n.p.: LG경제연구원.이충형, 김영준. (2021). 빅 데이터 품질이 기업의 경영성과에 미치는 영향에 관한 연구. 한국융합학회.배종석 유규창 권기욱(2015). 한국적 인적자원관리의 이론개발을 위한 기반연구. 인사조직연구.허희옥 양은주 김다원 문용선 최종근(2017). 인공지능 시대의 인간 지능과 학습. 교육철학연구.고영화, 임춘성. 인공지능 기술수용과 윤리성 인식이 이용의도에 미치는 영향. 디지털융복합연구.

오늘 본 자료 더보기
  • 오늘 본 자료가 없습니다.
  • 저작권 관련 사항 정보 및 게시물 내용의 진실성에 대하여 레포트샵은 보증하지 아니하며, 해당 정보 및 게시물의 저작권과 기타 법적 책임은 자료 등록자에게 있습니다. 위 정보 및 게시물 내용의 불법적 이용, 무단 전재·배포는 금지됩니다. 저작권침해, 명예훼손 등 분쟁요소 발견시 고객센터에 신고해 주시기 바랍니다.
    사업자등록번호 220-06-55095 대표.신현웅 주소.서울시 서초구 방배로10길 18, 402호 대표전화.02-539-9392
    개인정보책임자.박정아 통신판매업신고번호 제2017-서울서초-1806호 이메일 help@reportshop.co.kr
    copyright (c) 2003 reoprtshop. steel All reserved.