/************************************************************************* * File Name: hashList.c * Author: TyrantLucifer * E-mail: TyrantLucifer@gmail.com * Blog: https://tyrantlucifer.com * Created Time: Sun 20 Mar 2022 12:28:03 AM CST ************************************************************************/ #include<stdio.h> #include<stdlib.h>
#define NUM 5
typedefstructHashList { int num; char* data; } HashList;
HashList* initList(){ HashList* list = (HashList*)malloc(sizeof(HashList)); list -> num = 0; list -> data = (char*)malloc(sizeof(char) * NUM); for (int i = 0; i < NUM; i++) { list -> data[i] = 0; } returnlist; }
inthash(int data){ return data % NUM; }
voidput(HashList* list, char data){ int index = hash(data); if (list -> data[index] != 0) { int count = 1; while (list -> data[index] != 0) { index = hash(hash(data) + count); count++; } } list -> data[index] = data; list -> num ++; }
intmain() { HashList* list = initList(); put(list, 'A'); put(list, 'F'); printf("%c\n", list -> data[0]); printf("%c\n", list -> data[1]); return0; }