資料結構實習報告單詞查詢

2021-09-29 19:20:26 字數 1697 閱讀 5247

資料結構課程設計

實習報告

3.3.1.1.5陣列的子功能模組66

3.3.1.1.5陣列的子功能模組78

3.3.1.2 bst的子功能模組9

3.3.1.2.1 資料結構9

3.3.1.2.2 bst的子功能模組110

3.3.1.2.3 bst的子功能模組111

3.3.1.2.4 bst的子功能模組112

3.3.1.2.5 bst的子功能模組113

3.4.1基本功能13

1.題目

設集合s由若干單詞(英文)組成,給定字串k,在s中查詢與k最佳匹配的結果。最佳匹配的結果定義為:與k有最長共同字首的字串。

例:s=,k1=zhao,k2=abdf,k3=cheng,則與k1最匹配的結果是zhao,與k2最匹配的結果是abdd,與k3最匹配的結果是ε(空串)。

2.要求

使用檔案儲存初始的單詞資料(至少100個),以逗號分隔。程式中將單詞讀入到記憶體中,並據此建立一種資料結構用來儲存這些單詞。

由鍵盤輸入查詢目標,在你定義的結構上進行查詢,螢幕上顯示出最佳匹配的字串。

程式是用visual studio 2010即vs10.0 編譯的。可以在windows系列的作業系統上執行。

該程式主要用於實現單詞的匹配,此次試驗給出了兩種不同的資料結構下插入單詞以及查詢單詞的比較,得出陣列儲存以及匹配效率均比bst要低的結論,為了衡量他們的優劣,本人在同乙個程式了使用了兩種方法去生成乙個具有100002個互不相同的單詞的資料結構,然後比較它們的插入時間以及發出查詢請求後的查詢時間。其流程如下:

a).由程式生成乙個檔案,檔案裡面全部是互不相同的單詞

b).讀入檔案裡的單詞,建立單詞陣列

c)建立單詞樹

d).查詢命令迴圈,並按要求把詞庫沒有的單詞新增到詞庫中去

e).中序遍歷單詞樹,把單詞按照從小到大的順序排列,以方便查詢

f).釋放一些空間,完成程式

本程式不僅僅是為了實現單詞的查詢,而且還實現了比較不同的資料結構對於儲存以及插入的效率比較。先由程式生成100000個單詞,然後分別用陣列和樹的方式儲存這100000個單詞,給出構建它們所需要的時間,單位是毫秒,然後在查詢的時候,也通過兩種方式查詢,計算並比較它們找到所需單詞的時間。如果查詢的單詞在詞庫中沒有出現,那麼可以選擇性的把這個單詞新增到詞庫中去。

另外還具有統計詞庫單詞個數的功能。(當然了,這些功能並不是實驗要求的)

3.3.1 子功能模組

子功能按照是否物件的方法分類:陣列的處理以及樹的處理;

3.3.1.1 陣列的子功能模組

函式原型:int compare(char* src,char* dst);

函式功能:將兩個字串比較,返回字首相同的位數

函式引數:src:源字串,dst:目的字串

返回值說明:例如返回2說明src與dst前兩個字元一樣,後面的字元不一樣

int compare(char* src,char* dst)

}函式原型:bool issame(data* src,data* dst)

函式功能:判斷兩個字串是否一樣

函式引數:src:源字串,dst:目的字串

返回值說明:true表示兩個字串一樣;false表示兩個字串不一樣

bool issame(data* src,data* dst)

}函式原型:bool strcmp(data* src,data* dst);

資料結構實習報告

接著猜的人再根據出題者的幾a幾b繼續猜,直到猜中為止。次數限制 有的時候,這個遊戲有猜測次數上的限制。根據計算機測算,這個遊戲,如果以最嚴謹的計算,任何數字可以在7次之內猜出。而有些地方把次數限制為6次或更少,則會導致有些數可能猜不出來。而有些地方考慮到人的邏輯思維難以達到計算機的那麼嚴謹,故設定為...

資料結構實習報告

實習報告 題目 編制解決約瑟夫環問題的程式 班級 09052713 姓名 張靜 學號 09052304 完成日期 2010.11.20 一 需求分析 1.利用單向迴圈鍊錶儲存結構模擬此過程,按照出列的順序印出各人的編號。2.演示程式以使用者和計算機的對話方式執行,即在計算機上顯示 提示資訊 之後,由...

資料結構實習報告

報告題目 文學研究助手 班級 業計算10專本 姓名 xx 完成日期 2011 5 15 一 問題描述 文學研究人員需要統計某篇英文 中某些形容詞的出現次數和位置。試寫乙個實現這一目標的文字統計系統,稱為 文學研究助手 英文 存於乙個文字檔案中。待統計的詞彙集合要一次輸入完畢,即統計工作必須在程式的一...