CHC5223資料結構和演算法

j22h7x發表於2024-04-04

CHC5223資料結構和演算法2023-2024第2學期第1頁,共4頁課業1價值40%的課程個人

工作學習成果學生將能夠理解:

1.1資料結構1.2資料結構的應用1.3物件導向程式設計概念

1.4程式測試方法學生將掌握以下方面的技能:

2.1資料抽象2.2資料結構的使用2.3使用高階面嚮物件語言進行更高階的程式設計2.4程式測試和檔案編制學生將掌握以下方面的技能:

3.1自我管理3.2學習3.3溝通

3.4問題解決3.5

資訊科技投稿要求提交的課業應壓縮為.zip檔案,以下檔案應為包含在壓縮檔案中:作為Microsoft Word文件的報告,包含您所有類的程式碼。檔名格式:學生ID+CCH5223_CW1_Report.docx包含專案的.zip檔案:可執行的jar檔案(如果可用)和所有程式的原始碼(.java)。檔名格式:學生ID+CHC5223_CW1_Files.zip一般要求所有程式設計都必須符合“Java慣例和程式設計指南”—請參閱模組Moodle站點。您必須將實現的關鍵原始碼以文字或形式貼上到報告中螢幕截圖。介紹這個賦值的主題是陣列、連結串列和雜湊表。這樣做的目的任務是利用一個雙連結串列作為潛在機制。

要求基本規則完成所有任務後,必須建立一個可執行專案。一個Java類應該分別定義在一個.Java檔案中。CHC5223資料結構和演算法2023-2024第2學期第2頁,共4頁在報告中,每個任務的原始碼以及相應的解釋應該單獨呈現。不遵守這些規則將導致零分。任務1必須在不使用任何現有實現的情況下設計和實現雙連結列表在Java中。 雙連結列表應該是可以儲存字串元素的通用資料結構資料型別。 必須建立一個Node類,該類表示雙連結列表中的每個元素。 您必須建立一個LinkedList類,該類表示應包含的雙連結列表用於插入、刪除、訪問特定元素、檢查為空、返回大小的方法,以及您想要實現的其他操作。 插入操作應該在列表的前面完成。 實現應該包括錯誤處理,以處理諸如刪除之類的錯誤空列表中的元素,並且訪問越界。

5個標記您必須在中對您的設計和實現給出明確的理由和詳細的解釋報告。

5個標記任務2您必須基於Java陣列(而不是任何陣列列表或現有的從Java庫實現),並透過使用線性探索的方式。 必須使用用於衝突解決的線性探測方式。陣列的初始容量不應超過20。 您必須設計一個能夠很好地處理字串型別資料的雜湊函式。雜湊函式設計應儘量減少碰撞的發生。您不能使用Java內建hashCode方法,不過您可以試用它。 該實現可以處理諸如空鍵或具有意外格式的鍵之類的錯誤。 實現應包括插入、搜尋、刪除和訪問鍵值對。 插入操作的實現可以根據如果雜湊表太滿,您設計的策略。 刪除操作的實現可以處理金鑰不在時的情況建立 該實現可以跟蹤雜湊表的負載因子,並在每次插入或刪除。 搜尋操作的實現可以搜尋關鍵字並返回如果找到金鑰,則為相應的值。5個標記您必須在中對您的設計和實現給出明確的理由和詳細的解釋報告。

CHC5223資料結構和演算法2023-2024第2學期第3頁,共4頁5個標記任務3您必須基於連結串列設計和實現雜湊表,並實現衝突透過使用單獨的連結方式解決方案。 必須使用建立一個表示雜湊表的ChainingHashTable類用於衝突解決的單獨連結方式。 您必須使用任務1中設計的雙連結列表來實現單獨的連結方法單獨連結的連結串列的容量不應超過8。 您必須設計一個能夠很好地處理字串型別資料的雜湊函式。代 寫CHC5223資料結構和演算法雜湊雜湊函式的策略應該與任務2的策略設計不同,並且應該最大限度地減少碰撞的發生。您不能使用Java內建的hashCode方法,儘管你可以嘗試一下。 該實現可以處理諸如空鍵或具有意外格式的鍵之類的錯誤。 實現應包括插入、搜尋、刪除和訪問鍵值對以及確定負載因子。 插入操作的實現可以有效地調整表的大小,如果雜湊桌子太滿了。 刪除操作的實現可以處理金鑰不在時的情況建立 該實現可以跟蹤雜湊表的負載因子,並在每次插入或刪除。 搜尋操作的實現可以搜尋關鍵字並返回如果找到金鑰,則為相應的值。

雜湊表的實現可以根據您設計的戰略。5個標記您必須在中對您的設計和實現給出明確的理由和詳細的解釋報告。5個標記任務4您必須實現一個主程式,該程式同時使用LinearProbeingHashTable的物件類和ChainingHashTable類。 您必須設計一組測試用例來評估兩個的功能和正確性不同的雜湊表。將雜湊表的容量設定為一個小值,以便容易發生衝突。驗證每個雜湊函式是否正常工作。驗證每個實施的方法是否正確工作。驗證線性探測方式和獨立鏈式方式的實施因為碰撞解決方案正在有效工作。 生成的雜湊表的內部結構應清楚地顯示為程式的執行結果。4個標記CHC5223資料結構和演算法2023-2024第2學期第4頁,共4頁您必須在中對您的設計和實現給出明確的理由和詳細的解釋報告。 演示程式的執行結果,包括生成的雜湊表和相應的測試資料。 對比分析基於同一組測試用例生成的兩個雜湊表鑑於 對比並分析您基於設計的兩個雜湊函式之間的差異給出了相同的測試用例集。 對兩種不同的碰撞策略的影響進行理論基礎和詳細分析解決方案6個標記共40分相關報價“構建軟體設計有兩種方法:一種方法是使其簡單到顯然沒有不足之處,另一種方法是使其變得如此複雜,以至於存在沒有明顯的缺陷。第一種方法要困難得多。”Tony Hoare爵士教授1980年圖靈獎講座;ACM通訊242),(1981年2月):第75-83頁請試著用第一種方法。獲得幫助我們鼓勵要求進一步澄清這項任務的要求。請儘量在正常聯絡時間內這樣做,避免在前一週尋求此類幫助截止日期。你可以與其他人討論課業中的要求和材料,但你創造的東西必須全部是你自己的作品。小心避免串通。在報告中宣告除模組教學之外您收到的任何幫助團隊反饋除了我們旨在在正常時間間隔內提供的書面反饋外,您將能夠獲得快速、簡短、口頭的形成性反饋,並幫助糾正你在實踐課程。

相關文章