实验二实验报告
實驗過程
實驗2.1
- 實驗內容:
參考教材p375,完成鏈樹LinkedBinaryTree的實現(getRight,contains,toString,preorder,postorder)
用JUnit或自己編寫驅動類對自己實現的LinkedBinaryTree進行測試,提交測試代碼運行截圖,要全屏,包含自己的學號信息
- 實驗過程
- 這個實驗主要是完善書上已給出的幾個代碼,再針對它們寫一個測試類或者驅動類來驗證編寫類的正確性即可。在BTNode里面有中序遍歷方法,下面留下來先序和后序給我們自己完善,這個課上已經講過了。而在LinkedBinaryTree中剩下的幾個方法在前面都有類似的參照。對比著完成了。
- 遇到的困難及解決方法:
- 這次的測試類里面我創建的是一個驅動測試類而不是以前一直用的單元測試,第一次輸出的先后序遍歷結果有錯誤,經過代碼復查,我發現我在編寫BTNode里面的preord和postord方法的時候時是照著中序寫的,left.inorder這種調用沒有改成相應的順序表達式方法,如下面應調用left.preorder。修改完畢后測試驅動類的構建輸出的結果和asserEqual測試過的方法均正確。
實驗2.2
- 實驗內容:
基于LinkedBinaryTree,實現基于(中序,先序)序列構造唯一一棵二?樹的功能,比如教材P372,給出HDIBEMJNAFCKGL和ABDHIEJMNCFGKL,構造出附圖中的樹
用JUnit或自己編寫驅動類對自己實現的功能進行測試,提交測試代碼運行截圖,要全屏,包含自己的學號信息。
- 實驗過程
- 這個實驗我是根據CSDN上別人發布的一個java的中先序構數的代碼來完成的,原代碼里輸出的是Integer類型,我通過把設置的結點和方法全部換成String后就可以完成實驗2.2的要求了。核心代碼學習:這個代碼的核心方法跟我在上課中學到的,在學習博客總結中總結的類似:用先序的第一個元素也就是根將中序表達式分割為左右子樹,再根據左右子樹的根結點繼續劃分成更小的子樹,在劃分到最小單元也就是prestart=preend,instart=inend時,也就是先后序遍歷到的最小樹長度為1時:返回的都是葉子結點。返回這些結點就可以輸出樹。同樣采用了遞歸的思路。
實驗2.3
- 實驗內容
- 完成PP16.6,提交測試代碼運行截圖,要全屏,包含自己的學號信息。
- 提交測試代碼運行截圖,要全屏,包含自己的學號信息。
- 實驗過程
- 修改教材十六章的代碼,將自己想要的問題和答案做成二叉樹,再用自己實現的基礎二叉樹實現出來。我的二叉樹:
核心代碼學習:
dignose是書上backpain診斷病痛類型的方法。這種通過客戶輸入來確定下一步操作的方法很久沒有接觸過了,之后的團隊項目游戲里面可能要經常用到,在這里mark一下:
(scan.nextLine().equalsIgnoreCase("N"))。 - 修改教材十六章的代碼,將自己想要的問題和答案做成二叉樹,再用自己實現的基礎二叉樹實現出來。我的二叉樹:
### 實驗四
- 實驗內容
- 完成PP16.8,提交測試代碼運行截圖,要全屏,包含自己的學號信息
- 實驗過程
我在查閱了網上的一些資料后采取了別人實現的一種與我們在棧的后綴表達式生成中用的近似的方法:在不涉及括號的時候奇數個數據抽出來形成一個數組,偶數位符號抽出來形成一個數組,再用兩個數據元素和一個符號數組組成一個子樹,這樣逐級上溯到根節點。值得注意的是:構建的時候從最深層的子樹往上追溯,一直到根節點結束。可以發現:有葉子結點都是數據元素,父結點都是計算符。本題中用到的計算表達樹是: - 遇到的困難及解決過程
在計算后綴表達式的時候我遇到了困難,最終我輸出的后綴表達式是一個void類型的方法輸出的表達式,我不太清楚怎么調用這個輸出的結果,比如我們之前在棧那一章節里面用的計算方法需要讀取String類型的表達式,但是我在網上也沒有查到能直接將void類型轉換成string類型的方法,畢竟void類型本身有時候就是無類型定義方法的通用歸類。我只能采取手動輸入的方式來調用后綴表達式計算方法了。
### 實驗五
- 實驗內容:完成PP17.1,提交測試代碼運行截圖,要全屏,包含自己的學號信息
- 實驗過程:這個查找樹應該更形象地稱之為老師說的排序樹更合適,add方法在添加的時候是按照順序添加的,比父節點小的元素在左子樹上添加,如果已經有左子結點與左子結點比較這樣循環。這樣最終輸出的時候finmin即輸出中序表達式的第一個元素即可,findmax輸出最后一個元素即可。
轉載于:https://www.cnblogs.com/cs162315/p/7745368.html
總結
- 上一篇: jh锂电保护电路_一文弄懂,锂电池的充电
- 下一篇: 为什么不用网页文件做办公文档