資料結構實驗指導書

2022-06-02 07:00:04 字數 2592 閱讀 1205

第一部分課程概述

資料結構是計算機程式設計的重要理論技術基礎,它不僅是計算機學科的核心課程,而且已成為其它立功專業的熱門選修課。資料結構實驗可以使學生對資料結構課程所教授的內容通過實驗環節加以實踐,提高學生的程式設計、編寫及除錯能力,是一門基礎的實驗課程。

第二部分實驗要求

通過實驗,學生對常用資料結構的基本概念及其不同的實現方法的理論得到進一步的掌握,並對在不同儲存結構上實現不同的運算方式和技巧有所體會,從而使學生更好的鞏固和掌握所學的內容。

學生應完成教師布置的實驗任務,得出正確的實驗結果,實驗後完成實驗報告或相關的實驗記錄。

第三部分實驗內容

實驗一線性表的應用

一、 實驗目的

1、熟悉c語言的上機環境,掌握c語言程式設計工具。

2、掌握線性結構的定義、組織形式、結構特徵和型別說明以及在這兩種儲存方式下實現的插入、刪除和按值查詢的演算法。

3、迴圈鍊錶、雙(迴圈)鍊錶的結構特點和在其上施加的插入、刪除等操作。

二、 實驗內容(兩者任選一題)

1、joseph問題:設編號為1,2,…,n的n個人圍坐一圈,約定編號為k(1<=k<=n)的人從1開始報數,數到m的那個人出列,他的下一位又從1開始報數,數到m的那個人又出列,…依次類推,直到所有的人出列為止,因此產生乙個出列編號的序列。

提示:應建立迴圈鍊錶來儲存資料,鍊錶結點的資料域用來儲存該結點的編號,出列結點應從鍊錶中刪除,直到最後乙個結點為止。

2、一元多項式的相加:選用適當的線性表結構儲存一元多項式,並實現兩個多項式相加,並將結果按照數學公式格式輸出。多項式的資料應由鍵盤輸入。

三、 思考題

1、在程式設計中,分析順序表和煉表的不同的應用場合。

2、如何改進線性表插入、刪除演算法的效率?

四、易犯錯誤及分析

1、在沒有定義結構體的前提下,就使用結構體變數組成鍊錶的結點,應注意基本資料結構的定義。

2、在進行表結點插入或刪除時,指標的錯誤使用,特別需要注意邊界條件的控制。

實驗二二叉樹的儲存與應用

一、 實驗目的

1、 掌握二叉樹的二叉鍊錶儲存方式、結點結構和型別定義。

2、 二叉樹的上的基本運算及應用。

3、 棧和佇列的實際應用。

二、 實驗內容(兩者任選一題)

1、非遞迴中序遍歷二叉樹:要求從鍵盤輸入二叉樹各結點的值,並使用二叉鍊錶來儲存二叉樹;使用非遞迴演算法遍歷二叉樹,在螢幕上列印出二叉樹中序遍歷序列。

提示:在非遞迴方法中,可採用堆疊的入棧方法儲存當前訪問結點的父結點,採用出棧的方法獲得當前訪問結點的父結點。

2、哈夫曼編碼/解碼問題:已知某密碼中共含有5個字元a、b、c、d、e,它們出現的頻率依次是0.1、0.

3、0.4、0.15和0.

05。要求採用哈夫曼演算法,求出5個字元的最優編碼;反之,當使用者給出某個0/1序列,解碼出相應的字串行;如有錯誤輸入的0/1序列,要列印出錯提示資訊。

三、 思考題

1、二叉鍊錶應如何建立?

2、在非遞迴遍歷演算法中,應使用以前學過的哪些資料結構?

四、易犯錯誤及分析

1、堆疊和佇列是操作受到限制的線性表,它們具有各自的特點。堆疊的特點是後進先出(lifo),而佇列的特點是先進先出(fifo)。在對它們進行頻繁操作的時候,要注意它們進出棧或進出隊的次序。

2、對堆疊或佇列執行操作時特別需要注意邊界條件的控制。

3、在二叉鍊錶的儲存中,不能隨意交換左右孩子結點的順序。

實驗三圖的儲存與應用

一、 實驗目的

1、 掌握圖的兩種儲存結構(鄰接矩陣和鄰接表)的表示方法;

2、 圖的基本運算及應用。

二、 實驗內容

拓撲排序:已知有九門課程,依次編號為c0至c8,在圖一中給出了給出了各門課程之間先後關係。例如:

c0是c2和c6的前序課程,而在選修c8之前,必須已經選修過c3和c7。要求儲存該拓撲結構圖,當使用者從鍵盤輸入任意課程的編號時,可列印出該課程的所有的前序課程。

圖一九門課程的拓撲結構圖

三、 思考題

1、 如何用圖來儲存圖形或網路?

2、 分析圖中多種儲存方法的使用場合。

3、 在拓撲排序演算法中,需要用到那些基本的資料結構?

四、易犯錯誤及分析

1、在使用二維陣列儲存鄰接矩陣時,在迴圈時注意邊界條件的控制。

2、在使用鄰接表儲存圖的時候,注意指標陣列的使用。

實驗四學生成績管理程式的設計

一、 實驗目的

綜合以前所學過的資料組織方式和儲存方法,解決實際問題,並掌握各種查詢排序演算法的基本思想及儲存、運算的實現,達到綜合設計的目的。

二、 實驗內容

(1)記錄項的設計:學生成績資訊應包含學生姓名、學號和至少三門的百分制成績。學生需根據實際問題,選擇合適的資料結構來儲存資料。

(2)學生成績的查詢:選擇並實現最有效地查詢「人名—成績」或「學號—成績」的查詢演算法。

(3)實現對學生成績的求和,求平均值及排序(公升序或降序)等功能,並對選擇的演算法作出簡單分析。

三、 思考題

1、在實驗中使用的排序方法哪些是穩定的?哪些是不穩定的?

2、分析你所使用的排序方法的效率。

四、易犯錯誤及分析

1、應注意選擇合適的資料結構儲存資料。

2、某些排序或查詢演算法只適用於某種特定的資料結構,不能一概而論。

資料結構實驗指導書

實驗名稱資料結構試驗 課程名稱資料結構 專業班級學生姓名 學號成績 指導老師實驗日期 2010年3月 5月 實驗報告如列印,紙張用a4,左裝訂 頁邊距 上下2.5cm,左2.5cm,右2.0cm 字型 字型小四號,1.25倍行距。驗證性 綜合性實驗報告應包含的主要內容 一 實驗目的及要求 1 實驗目...

資料結構實驗指導書

山東大學軟體學院 資料結構 演算法與應用 實驗指導書 一 實驗要求 1 採用良好的程式設計風格 關鍵操作要有注釋。2 程式能夠執行,顯示執行結果。二 開發工具 microsoft visual c eclipse ide for c 三 實驗時間 地點 一 實驗目的 1 熟悉開發工具的使用。2 掌握...

資料結構實驗指導書

主編姜力 山東理工大學工程技術學院 電子資訊系 目錄概述3 課程大綱4 實驗大綱9 實驗一線性表順序儲存結構的描述及基本操作 12 實驗二線性表鏈式儲存結構的描述及基本操作13 實驗三棧儲存結構的描述及應用演算法設計19 實驗四佇列儲存結構的描述及應用演算法設計21 實驗五二叉樹的儲存結構的兩種描述...