。
3. 程序代码
#include\#include
#define NULL_KEY 0//无记录元素
int hashsize[]={17,19,23,29};//存储容量 int m=0;//表长 typedef struct { int year; int month; int day;
精选资料,欢迎下载
查找书子函数 查看已借阅书子函数 归还书子函数 主函数 完成 。
}data;
typedef struct {
char num[5]; //读者编号记录 data bro; data back; }ReaderNode;
typedef struct {
char title[15]; char writer[15]; int current; int total; int key;
int more;//书的编号
ReaderNode reader[10]; //记录借读该书的读者记录 }BookNode; typedef struct {
BookNode *elem;
int count; //记录节点中的总数
}HashTable;
void InitHashTable(HashTable *H) { int i;
(*H).count=0; m=hashsize[0];
(*H).elem=(BookNode *)malloc(m*sizeof(BookNode)); for(i=0;i 精选资料,欢迎下载 。 (*H).elem[i].key=NULL_KEY; } unsigned Hash(int K)//哈希函数,自己设定 { return K%m; } void collision(int *p,int d) // 开放定址法处理冲突 { *p=(*p+d)%m; } int SearchHash(HashTable H,int K,int *p,int *c)//p为数据的地址位置,返回 { *p=Hash(K); while(H.elem[*p].key != NULL_KEY && (K != H.elem[*p].key)) { (*c)++; if(*c collision(p,*c); //下一地址 else break; } if (K == H.elem[*p].key) return SUCCESS; else return UNSUCCESS; } int InsertHash(HashTable *H,BookNode e) { int c,p; 精选资料,欢迎下载
数据结构课程设计图书管理系统实验报告



