#include<stdio.h>#defineMaxKey1000//哈希函数inthash(constchar* key){int h =0, g;while(*key){
h =(h <<4)+*key++;
g = h &0xf0000000;if(g){
h ^= g >>24;}}return h % MaxKey;//算出下标要取余}intmain(){//5个字符串指针constchar* pStr[5]={"xiongda","lele","hanmeimei","wangdao","fenghua"};int i;constchar* pHash_table[MaxKey]={NULL};//哈希表,散列表for(i =0; i <5; i++){printf("%s is key =%d\n", pStr[i],hash(pStr[i]));//算出哈希值并打印
pHash_table[hash(pStr[i])]= pStr[i];//存入哈希表}return0;}
哈希#include <stdio.h>#define MaxKey 1000//哈希函数int hash(const char* key) { int h = 0, g; while (*key) { h = (h << 4) + *key++; g = h & 0xf0000000; if (g) { h ^= g >> 24; } } return h % MaxKey;//算出下标要取余}int main() {