1、#include#include#include#include#define N 32/关键字个数#define size 256#define maxlen 9#define hashlen 41/哈希表长度#define Smax 0.9/相似度 s 的阈值#define Dmin 2struct hashtablechar *hash1;/指向关键字的指针int count;hashtthashlen;using namespace std;void Hashfunc(char str); /将关键字根据哈希函数放入哈希表中的指定位置int Hashfind(char *words);
2、/在哈希表中找是否该 words 为关键字,并统计频度int isletter(char ch); /判断是否为字母float Mol(int *x); /取模函数int Dot(int *x1, int *x2); /点积函数float D(int *x1, int *x2); /求距离 D 的函数float S(int *x1,int *x2); /求相似度 S 的函数int readc(char * filename); /读取源程序文件中的单词int getkey(char *str,int len); /获取该单词的 keyvoid resethash(int n); /重置哈希表void copycount(int x,int n); /将频道拷贝到数组里if(ch=acout“几何距离 xd=“xdendl;if (xd Dmin)/如果几何距离小于阈值则判断为相似cout “这两个文件内容确实可能相似“endl;elsecout “这两个文件内容可能不相似“endl;return;cout “这两个文件内容不相似“endl; /否则不相似 return;