首页 > 代码库 > _DataStructure_C_Impl:哈希表
_DataStructure_C_Impl:哈希表
#include<stdlib.h> #include<stdio.h> typedef int KeyType; //元素类型定义 typedef struct{ KeyType key; //keyword int hi; //冲突次数 }DataType; //哈希表类型定义 typedef struct{ DataType *data; int tableSize; //哈希表的长度 int curSize; //表中keyword个数 }HashTable; //构造一个哈希表,并处理冲突 void CreateHashTable(HashTable *H,int m,int p,int hash[],int n){ int i,sum,addr,di,k=1; (*H).data=http://www.mamicode.com/(DataType *)malloc(m*sizeof(DataType)); //为哈希表分配存储空间"哈希表地址:"); for(i=0;i<m;i++) printf("%-5d",i); printf("\n"); printf("keywordkey: "); for(i=0;i<m;i++) printf("%-5d",H.data[i].key); printf("\n"); printf("冲突次数: "); for(i=0;i<m;i++) printf("%-5d",H.data[i].hi); printf("\n"); } //求哈希表的平均查找长度 void HashASL(HashTable H,int m){ float average=0; int i; for(i=0;i<m;i++) average=average+H.data[i].hi; average=average/H.curSize; printf("平均查找长度ASL=%.2f",average); printf("\n"); } void main(){ int hash[]={23,35,12,56,123,39,342,90}; int m=11,p=11,n=8,pos; KeyType k; HashTable H; CreateHashTable(&H,m,p,hash,n); DisplayHash(H,m); k=123; pos=SearchHash(H,k); printf("keyword%d在哈希表中的位置为:%d\n",k,pos); HashASL(H,m); system("pause"); }
_DataStructure_C_Impl:哈希表
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。