- 初始化,数据的行数,hash链表结构体,存储头结点
1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 #include <stdlib.h> 4 char path[256] = "csdn.txt"; 5 //数据的行数 6 #define N 6428633 7 //字符串hash算法 8 unsigned int BKDRHash(char *str); 9 10 //hash链表结构体(结构体) 11 struct beitai 12 { 13 char *pstr;//存储字符串 14 struct beitai *pNext;//下一个节点 15 }; 16 17 //头结点 18 struct info 19 { 20 struct beitai *pbt; 21 }; 22 23 //保持所有头结点 24 struct info *pall = NULL;
- 字符串hash算法
1 //hasn算法 2 unsigned int BKDRHash(char *str) 3 { 4 //和数据对应的位数有关 5 unsigned int seed = 13131313; // 31 131 1313 13131 131313 etc.. 6 unsigned int hash = 0; 7 8 while (*str) 9 { 10 hash = hash * seed + (*str++); 11 } 12 13 return (hash & 0x7FFFFFFF); 14 }
- 实现读取一行的数据的修改,并对这个字符串进行hash算法
1 void changestr(char *str) 2 { 3 //备份地址 4 char *pbak = str; 5 //去除空格 6 //下标 7 int i = 0; 8 //游标 9 int j = 0; 10 while ((str[i] = str[j++]) != '