《資料結構與演算法》第1次實驗題目及要求
實驗一:線性表、佇列與棧及其操作演算法
一、實驗內容
1.建立包括頭結點和3個結點(4,2,1)的單鏈表,實現單鏈表建立、插入、刪除和順序查詢等基本操作。
2.程式設計用一維陣列來模擬乙個棧,實現入棧和出棧操作,解決括號匹配問題。
3.程式設計用一維陣列來模擬乙個佇列,實現入佇列和出佇列操作,解決楊輝三角問題。
二、實驗要求
1.掌握單鏈表的各種運算(表內結點的插入﹑刪除,輸出單鏈表等)。
2.掌握棧的結構和演算法應用。
3.掌握佇列的結構和演算法應用。
三、實驗報告要求
實驗報告使用教務處統一印製的《武漢理工大學學生實驗報告書》,主要包括:
1)實驗預習報告:
主要包括下列內容:
[1]實驗目的和意義。
[2]問題描述:包括目標、任務、條件和約束的描述。
[3]實驗原理與方法:闡述所使用的方案的工作原理。
[4]實驗方案和技術路線,包括:資料結構設計和核心演算法設計描述、主模組及功能模組層次結構、主要功能模組的輸入、輸出和演算法框架描述、功能模組之間的呼叫與被呼叫關係等內容。
2)實驗過程記錄:
主要包括下列內容:
[1]上機實驗的除錯過程,包括編譯時出現的錯誤資訊、錯誤分析、解決方法和解決過程。
[2]上機實驗的測試過程,包括測試範例,測試結果,測試結果的分析與討論,測試過程中遇到的主要問題及所採用的解決措施。
[3]軟體使用說明:主要描述如何使用你的程式以及使用時的主要事項。
[4]實驗輸出結果。
3)結果與討論:
主要包括下列內容:
[1]實驗結果分析:對本次實驗進行分析和評價。
[2]小結、建議和體會:說明程式的改進思想、經驗和體會。
[3]思考題:回答教師布置的討論題。
[4]程式清單:根據教師的要求,以電子文件形式或者列印附件形式提交所設計的程式清單。
要求:1、 用visual c++ 上機程式設計,請預習vc++軟體;
2、 本要求適用後面兩個實驗;
3、 請同學們做實驗時把課本帶來,需要借助書上的例子;
4、 不能在課堂上完成的,自己課後完成,然後將課後完成的結果執行給老師看。
實驗題目及要求:
1、 實驗題目為課本實驗題2.1—2.4,3.1—3.4;
2、 要求同學每8人為一組,分別按學號選擇2.1—2.4及3.1—3.4其中的一題。
課本p56:線性表
實驗題2.1 編寫乙個程式實現順序表結構的各種基本運算,並在此基礎上設計乙個主程式完成如下功能:
(1) 初始化順序表l;
(2) 依次採用尾插入法插入啊,a,b,c,d,e元素;
(3) 輸出順序表l;
(4) 輸出順序表l長度;
(5) 判斷順序表l是否為空;
(6) 輸出順序表l的第3個元素;
(7) 輸出元素『a』的位置;
(8) 在第四個元素位置上插入『f』元素;
(9) 輸出順序表l;
(10) 刪除l的第3個元素;
(11) 輸出順序表l;
(12) 釋放順序表l。
實驗題2.2 編寫乙個程式實現單鏈表的各種基本運算,並在此基礎上設計乙個主程式完成如下功能:
(1) 初始化單鏈表h;
(2) 依次採用尾插法插入a,b,c,d,e元素;
(3) 輸出單鏈表h;
(4) 輸出單鏈表h長度;
(5) 判斷單鏈表h是否為空;
(6) 輸出單鏈表h的第3個元素;
(7) 輸出元素『a』的位置;
(8) 在第4個元素位置上插入『f』元素;
(9) 輸出單鏈表h;
(10) 刪除l的第3個元素;
(11) 輸出單鏈表h;
(12) 釋放單鏈表h。
實驗題2.3 編寫乙個程式實現雙鏈表的各種基本運算,並在此基礎上設計乙個主程式完成如下功能:
(1) 初始化雙鏈表h;
(2) 依次採用尾插法插入a,b,c,d,e元素;
(3) 輸出雙鏈表h;
(4) 輸出雙鏈表h長度;
(5) 判斷雙鏈表h是否為空;
(6) 輸出雙鏈表h的第3個元素;
(7) 輸出元素『a』的位置;
(8) 在第4個元素位置上插入『f』元素;
(9) 輸出雙鏈表h;
(10) 刪除l的第3個元素;
(11) 輸出雙鏈表h;
(12) 釋放雙鏈表h。
實驗題2.4 編寫乙個程式實現迴圈鍊錶的各種基本運算,並在此基礎上設計乙個主程式完成如下功能:
(1) 初始化迴圈鍊錶h;
(2) 依次採用尾插法插入a,b,c,d,e元素;
(3) 輸出迴圈鍊錶h;
(4) 輸出迴圈鍊錶h長度;
(5) 判斷迴圈鍊錶h是否為空;
(6) 輸出迴圈鍊錶h的第3個元素;
(7) 輸出元素『a』的位置;
(8) 在第4個元素位置上插入『f』元素;
(9) 輸出迴圈鍊錶h;
(10) 刪除l的第3個元素;
(11) 輸出迴圈鍊錶h;
(12) 釋放迴圈鍊錶h。
課本p88:棧和佇列
實驗題3.1 編寫乙個程式實現順序棧的各種基本運算,並在此基礎上設計乙個主程式完成如下功能:
(1) 初始化棧s;
(2) 判斷棧s是否非空;
(3) 依次進棧元素a,b,c,d,e;
(4) 判斷棧s是否非空;
(5) 輸出棧長度;
(6) 輸出從棧頂到棧底的元素;
(7) 輸出出棧序列;
(8) 判斷棧s是否非空;
(9) 釋放棧。
實驗題3.2 編寫乙個程式實現鏈棧的各種基本運算,並在此基礎上設計乙個主程式完成如下功能:
(1) 初始化鏈棧s;
(2) 判斷鏈棧s是否非空;
(3) 依次進棧元素a,b,c,d,e;
(4) 判斷鏈棧s是否非空;
(5) 輸出鏈棧長度;
(6) 輸出從棧頂到棧底的元素;
(7) 輸出出鏈棧序列;
(8) 判斷鏈棧s是否非空;
(9) 釋放鏈棧。
實驗題3.3 編寫乙個程式實現順序環形佇列的各種基本運算,並在此基礎上設計乙個主程式完成如下功能:
(1) 初始化佇列q;
(2) 判斷佇列q是否非空;
(3) 依次進棧元素a,b,c;
(4) 出隊乙個元素,輸出該元素;
(5) 輸出佇列q的元素個數;
(6) 依次進佇列元素d,e,f;
(7) 輸出佇列q的元素個數;
(8) 輸出出隊序列;
(9) 釋放佇列。
實驗題3.4 編寫乙個程式實現鏈隊的各種基本運算,並在此基礎上設計乙個主程式完成如下功能:
(1) 初始化鏈隊q;
(2) 判斷鏈隊q是否非空;
(3) 依次進棧元素a,b,c;
(4) 出隊乙個元素,輸出該元素;
(5) 輸出鏈隊q的元素個數;
(6) 依次進鏈隊元素d,e,f;
(7) 輸出鏈隊q的元素個數;
(8) 輸出出隊序列;
(9) 釋放鏈隊。
資料結構實驗
資訊23 2120502060 古碧野一 實驗題目 建立乙個線性表,實現線性表的建立,插入,刪除和遍歷 二.實驗目的和要求 實驗目的 熟練掌握線性表的基本操作在順序儲存結構上的實現。實驗要求 用c語言編寫源程式,並除錯通過,測試正確。三.主要儀器裝置 windows xp操作平台,visual c ...
資料結構實驗
一 實驗目的 1 了解二叉樹的定義及基本運算。2 掌握二叉樹的描述方法 特點 性質及儲存結構。3 掌握二叉樹的基本操作演算法。4 自主設計二叉樹建立 遍歷等操作的整個程式。二 實驗內容 根據建立任意給定的二叉樹,並對此二叉樹進行前序 中序 後序 層次四種遍歷。基本要求 1 具有二叉樹的建立功能 2 ...
資料結構實驗
一 實驗題目編寫乙個程式實現雙鏈隊的各種基本運算,並在此基礎上設計乙個主程式完成如下功能 1 初始化鏈隊q 2 判斷鏈隊q是否為空 3 依次進隊元素a,b,c 4 出隊乙個元素,輸出該元素 5 輸出鏈隊q的元素個數 6 依次進鏈隊元素d,e,f 7 輸出鏈隊q的元素個數 8 輸出出隊序列 9 釋放鏈...