1. 程式人生 > >山東大學軟體學院 《資料結構、演算法與應用 c++語言描述》實驗指導書

山東大學軟體學院 《資料結構、演算法與應用 c++語言描述》實驗指導書

  • 實驗要求
    1. 採用良好的程式設計風格;關鍵操作要有註釋。
    2. 程式能夠執行,顯示執行結果。

二、      開發工具

              Microsoft Visual C++

(Eclipse  IDE  For C++)

  •   實驗時間、地點

實驗一 遞迴練習

一、實驗目的

  1. 熟悉開發工具的使用。
  2. 掌握遞迴的實現思想。

二、實驗內容

1、輸出n個整數的全排列。

2、輸出n個整數的所有子集。

實驗二 排序演算法

一、實驗目的

掌握各種排序方法的實現思想。

二、實驗內容

1、建立排序類。

2、提供操作:選擇排序、氣泡排序、插入排序、*基數排序、*快速排序、*歸併排序。

3、*能夠顯示各種排序演算法的中間過程。

實驗三 線性表操作

  • 實驗目的
      1. 掌握線性表的基本操作:插入、刪除、查詢。
      2. 掌握連結串列遍歷器的使用方法。

二、實驗內容

  1. 建立線性表類。線性表的儲存結構使用連結串列。
  2. 提供操作:自表首插入元素、刪除指定元素、搜尋表中是否有指定元素、輸出連結串列。
  3. 接收鍵盤錄入的一系列整數(例10,25,8,33,60)作為節點的元素值,建立連結串列。輸出連結串列內容。
  4. 輸入一個整數(例33),在連結串列中進行搜尋,輸出其在連結串列中的位置。如果不存在輸出0。
  5. 使用連結串列遍歷器實現連結串列的反序輸出。
  6. 建立兩個有序連結串列,使用連結串列遍歷器實現連結串列的合併。

實驗四  堆疊的應用

一、實驗目的

掌握堆疊的使用。

二、實驗內容

1、計算數學表示式的值。

輸入數學表示式,輸出表達式的計算結果。數學表示式由單個數字和運算子“+”、“-”、“*”、“/”、“(、“)構成,例如 2 + 3 * ( 4 + 5 ) – 6 / 4。假定表示式輸入格式合法。

2、以一個 m*n的長方陣表示迷宮,0和1分別表示迷宮中的通路和障礙。設計一個程式,對任意設定的迷宮,求出一條從入口到出口的通路,或得出沒有通路的結論。

   迷宮根據一個迷宮資料檔案建立。迷宮資料檔案由一個包含0、1的矩陣組成。迷宮的通路可以使用通路上各點的座標序列進行展示(使用圖形展示最佳)。

實驗五  二叉樹操作

一、實驗目的

1、掌握二叉樹的基本概念,連結串列描述方法;遍歷方法。

二、實驗內容

  1. 建立二叉樹類。二叉樹的儲存結構使用連結串列。
  2. 提供操作:前序遍歷、中序遍歷、後序遍歷、層次遍歷、計算二叉樹結點數目、計算二叉樹高度。
  3. 對建立好的二叉樹,執行上述各操作。
  4. 接收鍵盤錄入的二叉樹前序序列和中序序列(各元素各不相同),輸出該二叉樹的後序序列。

實驗六  堆和搜尋樹

一、實驗目的

1、掌握堆和搜尋樹的基本概念,插入、刪除方法。

二、實驗內容

  1. 建立最大堆類。最大堆的儲存結構使用連結串列。
  2. 提供操作:堆的插入、堆的刪除。堆的初始化。Huffman樹的構造。二叉搜尋樹的構造。
  3. 接收鍵盤錄入的一系列整數,輸出其對應的最大堆、Huffman編碼以及二叉搜尋樹。
  4. 堆排序。

實驗七  圖的操作

一、實驗目的

1、掌握圖的基本概念,描述方法;遍歷方法。

二、實驗內容

1、建立圖類。二叉樹的儲存結構使用鄰接矩陣或連結串列。

2、提供操作:遍歷、BFS、DFS

3、對建立好的圖,執行上述各操作。

4、輸出生成樹。

  1. 輸出最小生成樹。