資料結構實習題目

2021-04-02 11:51:02 字數 3828 閱讀 2310

資料結構課程設計任務書

實驗方式與基本要求

設計中要求綜合運用所學知識,上機解決一些與實際應用結合緊密的、規模較大的問題,通過分析、設計、編碼、除錯等各環節的訓練,深刻理解、牢固掌握資料結構和演算法設計技術,掌握分析、解決實際問題的能力。

(一)問題分析和任務定義

對問題的描述應避開具體的演算法和涉及的資料結構,它是對要完成的任務作出明確的回答。強調的是做什麼,而不是怎麼做。

(二)邏輯設計和資料結構的選擇

為操作物件定義相應的資料結構,以過程化程式設計的思想方法為原則劃分各個模組,定義資料的抽象資料型別。

(三)詳細設計和編碼

演算法的具體描述和**的書寫。

(四)上機除錯

源程式的輸入和**的除錯

(五)實習報告

1. 需求分析

以無歧義的陳述說明程式設計的任務,強調的是程式要做什麼?明確規定:輸入的形式和輸出、值的範圍;輸出的形式;程式所能達到的功能;測試的資料:包括正確的輸入和錯誤的輸入及其相應的輸出結果。

2. 概要設計

說明程式中用到的所有抽象資料型別的定義,主程式的流程以及各程式模組之間的層次(呼叫)關係。

3. 詳細設計

實現概要設計中定義所有資料型別,對每個操作只需要寫出偽**演算法(偽**演算法達到的詳細程度建議為:按照偽**演算法可以在計算機鍵盤直接輸入高階程式語言程式),畫出函式的呼叫關係圖。

4. 除錯分析

內容包括:除錯過程中遇到的問題並且是如何解決的以及對設計實現的回顧討論和分析;

演算法的時空分析(包括基本操作和主要演算法的時空複雜度的分析)和改進設想;

經驗和體會等

5. 測試結果

列出測試結果,包括輸入的資料和相應的輸出資料。這裡的測試資料應該完整和嚴格,最好多於需求分析中所列。

6. 附錄

應附上帶詳細注釋的源程式。

實驗專案的設定與內容提要

本次課程設計完成如下模組。共10個模組,可以在其中挑選3個功能塊完成,必修的模組是必須要選擇的。

序號實驗專案名稱

實驗時數

每組人數

實驗型別

實驗要求

實驗類別

內容提要

1運動會分數統計81

設計必修專業2

訂票系統121

設計必修專業3

一元多項式計算81

設計選修專業4

joseph環8

1設計

選修專業

5猴子選大王81

設計選修專業6

建立二叉樹,層序、先序遍歷81

設計選修專業7

赫夫曼樹的建立81

設計選修專業8

圖的建立及輸出81

設計選修專業9

拓撲排序81

設計選修

專業10

各種排序81

設計選修專業1

、運動會分數統計

任務:參加運動會有n個學校,學校編號為1……n。比賽分成m個男子專案,和w個女子專案。專案編號為男子1……m,女子m+1……m+w。不同的專案取前五名或前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些取前五名或前三名由學生自己設定。(m<=20,n<=20)

功能要求:

1).可以輸入各個專案的前三名或前五名的成績;

2).能統計各學校總分,

3).可以按學校編號、學校總分、男女團體總分排序輸出;

4).可以按學校編號查詢學校某個專案的情況;可以按專案編號查詢取得前三或前五名的學校。

規定:輸入資料形式和範圍:20以內的整數(如果做得更好可以輸入學校的名稱,運動專案的名稱)

輸出形式:有中文提示,各學校分數為整形

介面要求:有合理的提示,每個功能可以設立選單,根據提示,可以完成相關的功能要求。

測試資料:要求使用1、全部合法資料;2、整體非法資料;3、區域性非法資料。進行程式測試,以保證程式的穩定。測試資料及測試結果請在上交的資料中寫明;

2、訂票系統

任務:通過此系統可以實現如下功能:

錄入:可以錄入航班情況(資料可以儲存在乙個資料檔案中,資料結構、具體資料自定)

查詢:可以查詢某個航線的情況(如,輸入航班號,查詢起降時間,起飛抵達城市,航班票價,票價折扣,確定航班是否滿倉);可以輸入起飛抵達城市,查詢飛機航班情況;

訂票:(訂票情況可以存在乙個資料檔案中,結構自己設定)可以訂票,如果該航班已經無票,可以提供相關可選擇航班;

退票: 可退票,退票後修改相關資料檔案;客戶資料有姓名,證件號,訂票數量及航班情況,訂單要有編號。

修改航班資訊:當航班資訊改變可以修改航班資料檔案

要求:根據以上功能說明,設計航班資訊,訂票資訊的儲存結構,設計程式完成功能。

3、一元多項式計算

任務:能夠按照指數降序排列建立並輸出多項式;

能夠完成兩個多項式的相加、相減,並將結果輸入;

在上交資料中請寫明:儲存結構、多項式相加的基本過程的演算法(可以使用程式流程圖)、源程式、測試資料和結果、演算法的時間複雜度、另外可以提出演算法的改進方法;

4、joseph環

任務:編號是1,2,……,n的n個人按照順時針方向圍坐一圈,每個人只有乙個密碼(正整數)。一開始任選乙個正整數作為報數上限值m,從第乙個仍開始順時針方向自1開始順序報數,報到m時停止報數。報m的人出列,將他的密碼作為新的m值,從他在順時針方向的下乙個人開始重新從1報數,如此下去,直到所有人全部出列為止。設計乙個程式來求出出列順序。

要求:利用單向迴圈鍊錶儲存結構模擬此過程,按照出列的順序輸出各個人的編號。

測試資料:m的初值為20,n=7 ,7個人的密碼依次為3,1,7,2,4,7,4,首先m=6,則正確的輸出是什麼?

要求:輸入資料:建立輸入處理輸入資料,輸入m的初值,n ,輸入每個人的密碼,建立單迴圈鍊錶。

輸出形式:建立乙個輸出函式,將正確的輸出序列

5、猴子選大王

任務:一堆猴子都有編號,編號是1,2,3 ...m ,這群猴子(m個)按照1-m的順序圍坐一圈,從第1開始數,每數到第n個,該猴子就要離開此圈,這樣依次下來,直到圈中只剩下最後乙隻猴子,則該猴子為大王。

要求:輸入資料:輸入m,n m,n 為整數,n

輸出形式:中文提示按照m個猴子,數n 個數的方法,輸出為大王的猴子是幾號 ,建立乙個函式來實現此功能

6、建立二叉樹,層序、先序遍歷( 用遞迴或非遞迴的方法都可以)

任務:要求能夠輸入樹的各個結點,並能夠輸出用不同方法遍歷的遍歷序列;分別建立二叉樹儲存結構的輸入函式、輸出層序遍歷序列的函式、輸出先序遍歷序列的函式;

7、赫夫曼樹的建立

任務 :建立最優二叉樹函式

要求:可以建立函式輸入二叉樹,並輸出其赫夫曼樹

8、圖的建立及輸出

任務:建立圖的儲存結構(圖的型別可以是有向圖、無向圖、有向網、無向網,學生可以任選兩種型別),能夠輸入圖的頂點和邊的資訊,並儲存到相應儲存結構中,而後輸出圖的鄰接矩陣。

9、拓撲排序

任務:編寫函式實現圖的拓撲排序。

10、 各種排序

任務:用程式實現插入法排序、起泡法改進演算法排序;

利用插入排序和冒泡法的改進演算法,將使用者隨機輸入的一列數按遞增的順序排好。

輸入的資料形式為任何乙個正整數,大小不限。

輸出的形式:數字大小逐個遞增的數列。

考核方式與評分辦法

1. 設計按優、良、中、及格、不及格五檔評分,佔課程總成績的

50%。

2. 課程設計過程評價:在上機操作過程中學生上機能力及紀律按優、良、中、及格、差五檔評定,佔課程總成績的

20%。

3. 設計報告評價佔課程總成績的

30%。

資料結構實驗題目

1 集合的交 並 差運算 容易 問題描述 編制乙個能演示執行集合的交 並和差運算的程式。集合元素用小寫英文本母。基本要求 1 用線性表來儲存集合 2 分別實現交 並和差這三個集合運算 3 輸出結果 2成績統計 中等 問題描述 給出n個學生的m門考試的成績表,每個學生的資訊由學號 姓名以及各科成績組成...

資料結構拓展題目

本題要求實現乙個函式,將給定的單鏈表逆轉。函式介面定義 list reverse list l 其中list結構定義如下 typedef struct node ptrtonode struct node typedef ptrtonode list 定義單鏈表型別 l是給定單鏈表,函式revers...

資料結構題目記錄

有兩個稀疏矩陣a,b,規格分別是m n,n k 現在要求編寫乙個函式,來計算c a b,並且a,b.c矩陣皆由三元組儲存。函式程式段 先將兩個三元組轉換成矩陣,然後計算兩個矩陣的乘積,然後再轉化成三元組 void trimatmultiply int a 3 int b 3 int c 3 int ...