哈工大威海資料結構實驗四

2021-10-12 23:07:28 字數 2679 閱讀 6272

分析:

該實驗的難度在於對倒排索引表的構建,在該實驗中,我採用了鍊錶作為索引表,雜湊表作為儲存單詞的表,在索引表內儲存單詞的位置用來訪問雜湊表。另外乙個難點在於,如何求結相似度,在該實驗中我採用的是在每個索引表頭儲存單詞數量,同時通過訪問雜湊表得出相同單詞數量,通過公式 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.從鍵盤輸入一些文字,統計文字單詞的個...