본문으로 바로가기
homeimage
  1. Home
  2. 컴퓨터/프로그래밍
  3. C언어 해시 테이블 삭제 함수 hdestroy()

C언어 해시 테이블 삭제 함수 hdestroy()

· 댓글개 · 바다야크

C함수 해시 테이블 삭제 hdestroy()

해시 테이블(hash table)을 메모리에서 제거합니다.

  • 헤더: search.h
  • 형태: void hdestroy(void)
  • 인수: -
  • 반환: -

해시 테이블(hash table)이란.

단순한 구조의 데이터 테이블에서는 자료를 입력할 때에는 추가 순서에 따라서 데이터를 추가했다가 필요에 따라 정렬을 다시 하거나 모든 데이터를 비교하는 식으로 검색하게 됩니다.

그러나 해시 테이블은 자료를 테이블에 입력할 때부터 특정 조건에 따라 분류하여 추가하게 함으로써 이후 검색할 때 모든 데이터를 조회할 필요 없이 분류된 자료만 검색하면 되므로 검색이 빠릅니다.

아래는 해시 테이블 관리에 설명된 내용을 간략히 정리하여 올립니다.

C언어 hdestroy() 함수 예제

#include <stdio.h>
#include <search.h>

int main( void)
{
   ENTRY    item;
   ENTRY    *result;

   hcreate( 2);

   item.key    = "1st";
   item.data   = "badayak.com";
   hsearch( item, ENTER);


   item.key    = "2nd";
   item.data   = "badayak.com";
   hsearch( item, ENTER);

   item.key    = "3rd";
   item.data   = "jwmx badayak";
   hsearch( item, ENTER);


   item.key    = "4th";
   item.data   = "Embedded Linux Programming";
   hsearch( item, ENTER);

   item.key    = "5th";
   item.data   = "GCC Compiler";
   hsearch( item, ENTER);

   // 여기서부터는 자료 찾기

   item.key    = "1st";
   if ( NULL != (result = hsearch( item, FIND)) )
      printf( "%s key data is %s\n", result->key, (char *)result->data);

   item.key    = "2nd";
   if ( NULL != (result = hsearch( item, FIND)) )
      printf( "%s key data is %s\n", result->key, (char *)result->data);

   item.key    = "3rd";
   if ( NULL != (result = hsearch( item, FIND)) )
      printf( "%s key data is %s\n", result->key, (char *)result->data);

   item.key    = "4th";
   if ( NULL != (result = hsearch( item, FIND)) )
      printf( "%s key data is %s\n", result->key, (char *)result->data);

   item.key    = "5th";
   if ( NULL != (result = hsearch( item, FIND)) )
      printf( "%s key data is %s\n", result->key, (char *)result->data);

   item.key    = "6th";
   if ( NULL != (result = hsearch( item, FIND)) )
      printf( "%s key data is %s\n", result->key, (char *)result->data);

   item.key    = "7th";
   if ( NULL != (result = hsearch( item, FIND)) )
      printf( "%s key data is %s\n", result->key, (char *)result->data);

   hdestroy();
   return 0;
}

C언어 hdestroy() 예제 실행 결과

$ ./a.out
1st key data is jwmx.tistory.com
2nd key data is badayak.com
3rd key data is jwmx badayak
$
SNS 공유하기
💬 댓글 개
최근글
이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

이모티콘을 클릭하면 댓글창에 입력됩니다.