해싱함수 질문좀 드릴게요 빠른 답변 가능할지요.
크심
질문 제목 : 해싱함수 질문있습니다.빨강색 부분 warning이 되는데 무슨 이유인지 어떻게 수정해야되는지 좀 알 수 있을까요?질문 내용 :
#include stdafx.h
#include stdio.h
#include stdlib.h
#include memory.h
#define bk 5
struct node
{
int data;
struct node *link;
};
struct node *hashtable[bk];
int hash(int key)
{
return key % bk;
}
void addkey(int key)
{
int bucket = hash(key);
struct node *search;
struct node *tmp = (struct node *)malloc(sizeof(struct node));
tmp-data = key;
tmp-link = null;
printf(addkey : %d %d\n, bucket, key);
if(hashtable[bucket] == null)
hashtable[bucket] = tmp;
else
{
search = hashtable[bucket];
while(1)
{
if(search-link == null)
{
search-link = tmp;
break;
}
search = search-link;
}
}
}
void delete(struct node *tmp)
{
struct node *dump;
printf(\ndelete\n);
while(tmp)
{
printf(%3d , tmp-data);
dump = tmp;
tmp = dump-link;
free(dump);
}
}
int findkey(int key)
{
int bucket = hash(key);
struct node *tmp = hashtable[bucket];
while(1)
{
if(tmp-data == key)
{
printf([%d] : %d 찾음!!\n, bucket, tmp-data);
return 1;
}
tmp = tmp-link;
return 0;
}
}
int main()
{
int i;
memset(hashtable, null, sizeof(hashtable));
addkey(45);
addkey(15);
addkey(21);
addkey(7);
printf(search key : );
scanf(%d, &i);
if(findkey(i))
printf(검색성공!\n);
else
printf(찾을수 없음!\n);
for(i=0;ibk;i++)
delete(hashtable[i]);
return 0;
}
int _tmain(int argc, _tchar* argv[])
{
return 0;
}