山東大學軟體學院 《資料結構、演算法與應用 c++語言描述》實驗指導書
阿新 • • 發佈:2018-10-31
- 實驗要求
- 採用良好的程式設計風格;關鍵操作要有註釋。
- 程式能夠執行,顯示執行結果。
二、 開發工具
Microsoft Visual C++
(Eclipse IDE For C++)
- 實驗時間、地點
實驗一 遞迴練習
一、實驗目的
- 熟悉開發工具的使用。
- 掌握遞迴的實現思想。
二、實驗內容
1、輸出n個整數的全排列。
2、輸出n個整數的所有子集。
實驗二 排序演算法
一、實驗目的
掌握各種排序方法的實現思想。
二、實驗內容
1、建立排序類。
2、提供操作:選擇排序、氣泡排序、插入排序、*基數排序、*快速排序、*歸併排序。
3、*能夠顯示各種排序演算法的中間過程。
實驗三 線性表操作
- 實驗目的
-
- 掌握線性表的基本操作:插入、刪除、查詢。
- 掌握連結串列遍歷器的使用方法。
-
二、實驗內容
- 建立線性表類。線性表的儲存結構使用連結串列。
- 提供操作:自表首插入元素、刪除指定元素、搜尋表中是否有指定元素、輸出連結串列。
- 接收鍵盤錄入的一系列整數(例10,25,8,33,60)作為節點的元素值,建立連結串列。輸出連結串列內容。
- 輸入一個整數(例33),在連結串列中進行搜尋,輸出其在連結串列中的位置。如果不存在輸出0。
- 使用連結串列遍歷器實現連結串列的反序輸出。
- 建立兩個有序連結串列,使用連結串列遍歷器實現連結串列的合併。
實驗四 堆疊的應用
一、實驗目的
掌握堆疊的使用。
二、實驗內容
1、計算數學表示式的值。
輸入數學表示式,輸出表達式的計算結果。數學表示式由單個數字和運算子“+”、“-”、“*”、“/”、“(、“)構成,例如 2 + 3 * ( 4 + 5 ) – 6 / 4。假定表示式輸入格式合法。
2、以一個 m*n的長方陣表示迷宮,0和1分別表示迷宮中的通路和障礙。設計一個程式,對任意設定的迷宮,求出一條從入口到出口的通路,或得出沒有通路的結論。
迷宮根據一個迷宮資料檔案建立。迷宮資料檔案由一個包含0、1的矩陣組成。迷宮的通路可以使用通路上各點的座標序列進行展示(使用圖形展示最佳)。
實驗五 二叉樹操作
一、實驗目的
1、掌握二叉樹的基本概念,連結串列描述方法;遍歷方法。
二、實驗內容
- 建立二叉樹類。二叉樹的儲存結構使用連結串列。
- 提供操作:前序遍歷、中序遍歷、後序遍歷、層次遍歷、計算二叉樹結點數目、計算二叉樹高度。
- 對建立好的二叉樹,執行上述各操作。
- 接收鍵盤錄入的二叉樹前序序列和中序序列(各元素各不相同),輸出該二叉樹的後序序列。
實驗六 堆和搜尋樹
一、實驗目的
1、掌握堆和搜尋樹的基本概念,插入、刪除方法。
二、實驗內容
- 建立最大堆類。最大堆的儲存結構使用連結串列。
- 提供操作:堆的插入、堆的刪除。堆的初始化。Huffman樹的構造。二叉搜尋樹的構造。
- 接收鍵盤錄入的一系列整數,輸出其對應的最大堆、Huffman編碼以及二叉搜尋樹。
- 堆排序。
實驗七 圖的操作
一、實驗目的
1、掌握圖的基本概念,描述方法;遍歷方法。
二、實驗內容
1、建立圖類。二叉樹的儲存結構使用鄰接矩陣或連結串列。
2、提供操作:遍歷、BFS、DFS
3、對建立好的圖,執行上述各操作。
4、輸出生成樹。
- 輸出最小生成樹。