1. 程式人生 > 其它 >20202329 實驗八 《資料結構與面向物件程式設計》實驗報告

20202329 實驗八 《資料結構與面向物件程式設計》實驗報告

#20202329 2021-2022-1 《資料結構與面向物件程式設計》實驗八報告

課程:《程式設計與資料結構》
班級:2023
姓名:張燾
學號:20202329
實驗教師:王志強
實驗日期:2021年11月18日

必修/選修: 必修

一、實驗內容

1.參考教材PP16.1,完成鏈樹LinkedBinaryTree的實現(getRight,contains,toString,preorder,postorder)
用JUnit或自己編寫驅動類對自己實現的LinkedBinaryTree進行測試,提交測試程式碼執行截圖,要全屏,包含自己的學號資訊
課下把程式碼推送到程式碼託管平臺

2.基於LinkedBinaryTree,實現基於(中序,先序)序列構造唯一一棵二㕚樹的功能,比如給出中序HDIBEMJNAFCKGL和後序ABDHIEJMNCFGKL,構造出附圖中的樹
用JUnit或自己編寫驅動類對自己實現的功能進行測試,提交測試程式碼執行截圖,要全屏,包含自己的學號資訊
課下把程式碼推送到程式碼託管平臺

3.自己設計並實現一顆決策樹
提交測試程式碼執行截圖,要全屏,包含自己的學號資訊
課下把程式碼推送到程式碼託管平臺

4.輸入中綴表示式,使用樹將中綴表示式轉換為字尾表示式,並輸出字尾表示式和計算結果(如果沒有用樹,正常評分。如果用到了樹,即使有小的問題,也酌情給滿分)
提交測試程式碼執行截圖,要全屏,包含自己的學號資訊

二、實驗過程及結果

1.參考教材PP16.1,完成鏈樹LinkedBinaryTree的實現(getRight,contains,toString,preorder,postorder)
用JUnit或自己編寫驅動類對自己實現的LinkedBinaryTree進行測試,提交測試程式碼執行截圖,要全屏,包含自己的學號資訊
課下把程式碼推送到程式碼託管平臺

碼雲:https://gitee.com/besti2023javads/zt20202329/blob/master/LinearNode.java

https://gitee.com/besti2023javads/zt20202329/blob/master/LinkedBinaryTree1Test.java

2.基於LinkedBinaryTree,實現基於(中序,先序)序列構造唯一一棵二㕚樹的功能,比如給出中序HDIBEMJNAFCKGL和後序ABDHIEJMNCFGKL,構造出附圖中的樹
用JUnit或自己編寫驅動類對自己實現的功能進行測試,提交測試程式碼執行截圖,要全屏,包含自己的學號資訊
課下把程式碼推送到程式碼託管平臺

https://gitee.com/besti2023javads/zt20202329/blob/master/LinkedBinaryTree2.java

https://gitee.com/besti2023javads/zt20202329/blob/master/LinkedBinaryTree2Test.java

3.自己設計並實現一顆決策樹
提交測試程式碼執行截圖,要全屏,包含自己的學號資訊
課下把程式碼推送到程式碼託管平臺

https://gitee.com/besti2023javads/zt20202329/blob/master/DecisionTree.java

https://gitee.com/besti2023javads/zt20202329/blob/master/Expert.java

4.輸入中綴表示式,使用樹將中綴表示式轉換為字尾表示式,並輸出字尾表示式和計算結果(如果沒有用樹,正常評分。如果用到了樹,即使有小的問題,也酌情給滿分)
提交測試程式碼執行截圖,要全屏,包含自己的學號資訊

https://gitee.com/besti2023javads/zt20202329/blob/master/FixTest.java

https://gitee.com/besti2023javads/zt20202329/blob/master/Fix.java

三. 實驗過程中遇到的問題和解決過程
- 問題1:idea每次開啟都需要重新install,佔據大量記憶體
- 問題1解決方案:目前自己的解決辦法是把路徑設定到桌面上,每次啟動時把桌面上的進行刪除

老問題,因為在LinkedBinaryTree中的節點的Element選擇了自定義的變數型別,導致Test中的assertEquals()方法無法正常的將兩個型別的資料進行比較,仍然是通過(“”+變數)的方式來講兩個型別的資料都統一轉換為String型別資料進行比較

- 問題2:在實驗一的執行時會出現Expected與Actual不符合的情況

- 問題2解決方案:本次不符合的原因是因為順序的問題,根據提示就可以改正。之前也遇到過類似的問題是因為數和數之間要用空格隔開。


## 其他(感悟、思考等)

最近學的樹,相對來說比較熟悉,畢竟在之前的離散數學課上也學過。所以在課上感覺對理論知識的掌握還是很不錯的。但一旦進行程式碼的編寫時,一切又回到了原點,無助,無緒,無耐心,很暴躁,不會。希望在接下來為數不多的幾次課裡面能夠再多學習一點,對於程式碼的編寫能夠多掌握一點。除此之外,自己也需要在課下多下功夫進行練習(雖然每次 都是這樣想的,但執行起來似乎就被遺忘在了腦後)。還是希望自己能夠多動腦,多動手,不斷探索吧!