分析:
該實驗的難度在於對倒排索引表的構建,在該實驗中,我採用了鍊錶作為索引表,雜湊表作為儲存單詞的表,在索引表內儲存單詞的位置用來訪問雜湊表。另外乙個難點在於,如何求結相似度,在該實驗中我採用的是在每個索引表頭儲存單詞數量,同時通過訪問雜湊表得出相同單詞數量,通過公式 a∩b/a∪b 得出答案。
其實這裡有兩種方法,知識有的老師覺得用陣列的話過於簡單,不讓用,這裡使用那種方法看情況把。
1 陣列:
#include
#include
using
namespace std;
string inputfile()
elseif(
!(s.
find
(temp)
!=string::npos)
) temp="";
}else
temp="";
}}return s;
}int
wordnumber
(string s)
return num;
}int
comparefile
(string s1,string s2)
temp=s1.
substr
(point,i-point)
; point=i+1;
if(s2.
find
(temp)
!=string::npos)
}return num;
}void
findrepeat
(string s1,string s2)
intmain()
cin>>m;
for(
int i=
0;i)system
("pause");
}
#include
#include
#include
#include
using
namespace std;
#define maxn 10
#define minn 2
#define maxhashtable 600000
typedef
char word [maxn+1]
;typedef
struct wordlistindexlist;
typedef
struct filelistfiletable;
typedef
struct hashheader
;typedef
struct hashtable
;indexlist*
wordlistinit
(int size)
return ilist;
}hashtable*
hashinit
(int size)
return ht;
}int
readword
(word word)
while
(isalpha
(c))
//若超過十個單詞,則將剩下的字母讀完但不寫入
scanf
("%c"
,&c);if
(i<=minn)
//如果單詞數<=2則拋棄該單詞
readword
(word)
;else
}int
calculatelocation
(char
* word,
int tablesize)
return h%tablesize;
}int
findlocation
(word word,hashtable* ht)
return pos;
}int
inserthash
(word word,
int no,hashtable* ht)
else
}void
insertworkfile
(indexlist* il,
int no,
int pos)
void
findrepeat
(indexlist* il,
int n1,
int n2,hashtable* ht)
il=il[n1-1]
.next;
num=0;
while
(il!=
null)if
(ft)
num++
; il=il-
>next;
} radio=
(double
)(num*
100)/(
double
)(il[n1-1]
.word+il[n2-1]
.word-num)
;printf
("%.1lf%\n"
,radio);}
intmain()
} cin>>m;
for(
int i=
0;i)system
("pause");
}
哈工大威海資料結構實驗5
模擬excel排序 直接呼叫了cpp庫函式sort的解法 快速排序的具體實現 la5.cpp include include include include include using namespace std struct student vector students 初始化 void ini...
哈工大資料結構實驗之裝置更新問題 最短路徑應用
用不太完整的工程安排問題小實驗 簡單記錄一下我的雙十一!只寫了dijkstra演算法,過幾天再加別的,今天想打遊戲去了,懶得寫 不想動腦子 include include float price 100 repair 100 v 100 100 v是鄰接矩陣 int n int p 100 bol ...
資料結構實驗四
一 實驗目的 鞏固字串和多維陣列相關知識,學會運用靈活應用。1.回顧字串和多維陣列的邏輯結構和儲存操作特點,字元和陣列的物理儲存結構和常見操作。2.學習運用字串和和陣列的知識來解決實際問題。3.進一步鞏固程式除錯方法。4.進一步鞏固模板程式設計。二 實驗內容 1.從鍵盤輸入一些文字,統計文字單詞的個...