国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言實現散列表(哈希Hash表)實例詳解

2020-01-26 14:06:43
字體:
來源:轉載
供稿:網友

C語言實現散列表(哈希Hash表)

實例代碼:

//散列表查找算法(Hash) #include <stdio.h>   #include <stdlib.h>   #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define SUCCESS 1 #define UNSUCCESS 0 #define HASHSIZE 7          #define NULLKEY -32768  typedef int Status;   typedef struct {   int *elem;           //基址   int count;           //當前數據元素個數  }HashTable;  int m=0; // 散列表表長  /*初始化*/ Status Init(HashTable *hashTable) {   int i;   m=HASHSIZE;   hashTable->elem = (int *)malloc(m * sizeof(int)); //申請內存   hashTable->count=m;   for (i=0;i<m;i++)   {     hashTable->elem[i]=NULLKEY;   }   return OK; }  /*哈希函數(除留余數法)*/ int Hash(int data) {   return data % m; }  /*插入*/ void Insert(HashTable *hashTable,int data) {   int hashAddress=Hash(data); //求哈希地址    //發生沖突   while(hashTable->elem[hashAddress]!=NULLKEY)   {     //利用開放定址的線性探測法解決沖突     hashAddress=(++hashAddress)%m;   }    //插入值   hashTable->elem[hashAddress]=data; }  /*查找*/ int Search(HashTable *hashTable,int data) {   int hashAddress=Hash(data); //求哈希地址    //發生沖突   while(hashTable->elem[hashAddress]!=data)   {     //利用開放定址的線性探測法解決沖突     hashAddress=(++hashAddress)%m;      if (hashTable->elem[hashAddress]==NULLKEY||hashAddress==Hash(data)) return -1;   }    //查找成功   return hashAddress; }  /*打印結果*/ void Display(HashTable *hashTable) {   int i;   printf("/n//==============================///n");    for (i=0;i<hashTable->count;i++)   {     printf("%d ",hashTable->elem[i]);   }    printf("/n//==============================///n"); }  int main() {   int i,j,result;   HashTable hashTable;   int arr[HASHSIZE]={13,29,27,28,26,30,38};    printf("***************Hash哈希算法***************/n");    //初始化哈希表   Init(&hashTable);    //插入數據   for (i=0;i<HASHSIZE;i++)   {     Insert(&hashTable,arr[i]);   }   Display(&hashTable);    //查找數據   result= Search(&hashTable,29);   if (result==-1)        printf("對不起,沒有找到!/n");   else        printf("29在哈希表中的位置是:%d/n",result);   return 0; } 

實現:

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 岑溪市| 玉林市| 瓮安县| 兴化市| 顺昌县| 兴宁市| 唐山市| 溧水县| 武山县| 广河县| 扎囊县| 邛崃市| 枝江市| 新邵县| 莲花县| 柞水县| 许昌市| 寻甸| 平江县| 瓦房店市| 和硕县| 沂南县| 凤凰县| 阳城县| 岫岩| 策勒县| 滦南县| 白河县| 长沙县| 仁寿县| 许昌县| 盖州市| 阜城县| 日喀则市| 乌什县| 临漳县| 临漳县| 沙田区| 临漳县| 甘泉县| 永兴县|