C 언어 데이터 구조 해시 표 에 대한 작업 (삽입 (생 성), 찾기)
*/
#include
#include
#define HASHSIZE 7 // ( )
#define NULLKEY -32768//
#define OK 1
#define ERROR 0
typedef int Statu;//
typedef struct hashtable
{
int *elem;// ( )
int count;//
}HashTable;//
void test();//
void insert_hashtable(HashTable**hashtable,int data);// ( )
Statu search_hashtable(HashTable*hashtable,int data);//
void Display_hashtable(HashTable*hashtable);//
void Init(HashTable**hashtable);//
int Hash_fun(int data);//
void main()
{
test();//
}
int Hash_fun(int data)//
{
return (data%HASHSIZE);// hash
}
void Init(HashTable**hashtable)//
{
int m=HASHSIZE;
int i;
(*hashtable)->elem=(int *)malloc(sizeof(int )*m);//
(*hashtable)->count=m;//
for(i=0;ielem[i]=NULLKEY;//
}
}
void insert_hashtable(HashTable**hashtable,int data)
{
int hashaddress;//
hashaddress=Hash_fun(data);
while((*hashtable)->elem[hashaddress]!=NULLKEY)
{
hashaddress=(++hashaddress)%HASHSIZE;
}
(*hashtable)->elem[hashaddress]=data;//
}
Statu search_hashtable(HashTable*hashtable,int data)
{
int hashaddress=Hash_fun(data);
while(hashtable->elem[hashaddress]!=data)
{
hashaddress=(++hashaddress)%HASHSIZE;
if(hashtable->elem[hashaddress]==NULLKEY||hashaddress==Hash_fun(data))
return -1;//
//hashaddress==Hash_fun(data)
//
//hashtable->elem[hashaddress]==NULLKEY
//
}
return hashaddress;//
}
void Display_hashtable(HashTable*hashtable)
{
//
int i;
for(i=0;icount;i++)
{
printf("%d\t",hashtable->elem[i]);
}
}
void test()//
{
HashTable*hashtable;
int i;
int data;//
hashtable=(HashTable*)malloc(sizeof(HashTable));//
Init(&hashtable);//
int hash_array[HASHSIZE];
printf(" :
");
for(i=0;i
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.