C语言 简单链式哈希

来源:互联网 发布:淘宝联盟一直不提现 编辑:程序博客网 时间:2024/05/20 18:40
#include <stdio.h>#include <stdlib.h>#include "doulist.h"typedef struct hash{Pnode buff[10];}Hash, *pHash;Hash *createHash(){pHash p = (pHash)malloc(sizeof(Hash));if (NULL == p){return NULL;}for (int i = 0; i < 10; i++)//-1代表空{p->buff[i] =NULL;}return p;}void destroyHash(Hash *p){if (NULL == p){return -1;}for (int i = 0; i < 10; i++)//-1代表空{/*if (NULL != p->buff[i]){free(p->buff[i]);}*/douListDestroy(&(p->buff[i]));}free(p);}int hashFunc(int key){if (key < 0){return -1;}key = key % 10;return key;//---------------------------------}int insertHash(Hash *p, int data){if (NULL == p){return -1;}int index = hashFunc(data);//内存  与   数据的关系if (-1 == index){return NULL;}int ret=douListInsertDataBySort(&(p->buff[index]), data);if (0 == ret){return 0;}return -1;}Pnode findHash(Hash *p, int data){if (NULL == p){return NULL;}if (data < 0){return NULL;}int index = hashFunc(data);if (-1 == index){return NULL;}     Pnode p=douListFindNode(p->buff[index], data); return p;}void main(){}

0 0
原创粉丝点击