1.掌握佇列儲存結構的表示和實現方法。
2.掌握佇列的入隊和出隊等基本操作的演算法實現。
3.了解佇列在解決實際問題中的簡單應用。
1.建立順序迴圈佇列,並在順序迴圈佇列上實現入隊、出隊基本操作(驗證性內容)。
2.建立迴圈鏈佇列,並在迴圈鏈佇列上實現入隊、出隊基本操作(設計性內容)。
3.實現鍵盤輸入迴圈緩衝區問題(應用性設計內容)。
硬體環境要求:
pc機(單機)
使用的軟體名稱、版本號以及模組:
windows環境下的vc++等
前期要求熟練掌握了c語言的程式設計規則、方法和順序迴圈佇列、迴圈鏈佇列的基本操作演算法。
1.實驗要求
程式設計實現如下功能:
(1)根據輸入的佇列長度n和各元素值建立乙個迴圈順序表表示的佇列(迴圈佇列),並輸出佇列中各元素值。
(2)將資料元素e入隊,並輸出入隊後的佇列中各元素值。
(3)將迴圈佇列的隊首元素出隊,並輸出出隊元素的值和出隊後佇列中各元素值。
2. 實驗相關原理:
佇列是一種插入操作限制在表尾,而刪除操作限制在表頭進行的特殊線性表,它的操作具有「先進先出」的特性。採用順序儲存結構的佇列稱為順序佇列,順序佇列的儲存結構描述如下:
#define maxqsize 100
/*順序迴圈佇列的最大長度*/
typedef
struct
sqqueue;
【核心演算法提示】1.順序迴圈隊列入隊操作的基本步驟:首先判斷佇列是否為滿,如果佇列滿,則函式返回error,否則將待入隊的資料元素e存放在尾指標rear所指示的儲存單元中,再使尾指標沿著順序迴圈儲存空間後移乙個位置,最後函式返回ok。
2.順序迴圈佇列出隊操作的基本步驟:首先判斷佇列是否為空,如果佇列空,則函式返回error,否則將頭指標所指示的隊首元素用e返回其值,再使頭指標沿著順序迴圈儲存空間後移乙個位置,最後函式返回ok。
【核心演算法描述】
status enqueue
(sqqueue &q,qelemtype e)
/*在迴圈佇列q中,插入新元素使其成為隊尾元素*/
status dequeue
(sqqueue &q,qelemtype &e)
/*在迴圈佇列q中,刪除q的隊首元素*/
學生實驗**
#include
#include
"stdlib.h"
#define maxqsize 100
typedef
struct
sqqueue;
sqqueue creat
(int n)
return q;
}void
print
(sqqueue q)
printf
("\n");
}sqqueue outqu
(sqqueue q)
return q;
}sqqueue inpu
(sqqueue q,
int e)
return q;
}int
main()
3.執行結果
資料結構實驗報告 資料結構實驗報告
使用c語言中的陣列,實現線性表中的順序結構儲存的查詢 刪除操作。1 初始線性表通過陣列 迴圈 scanf語句實現輸入任意個整數。2 刪除操作的實現,任意輸入乙個要刪除的整數,找到這個元素,將此元素之後的所有元素逐個前移一位,實現刪除操作。3 要求以上2步操作可以重複執行。4 例如 刪除操作執行結果大...
資料結構實驗報告
1 理解二叉樹的型別定義與性質。2 掌握二叉樹的二叉鍊錶儲存結構的表示和實現方法。3 掌握二叉樹遍歷操作的演算法實現。4 熟悉二叉樹遍歷操作的應用。1 建立二叉樹的二叉鍊錶儲存結構。2 實現二叉樹的先序 中序和後序三種遍歷操作 驗證性內容 3 應用二叉樹的遍歷操作來實現判斷兩棵二叉樹是否相等的操作 ...
資料結構實驗一 實驗報告
一 實驗目的 複習鞏固vc程式設計環境的使用,以及c 模板設計。1.回顧並掌握vc單檔案結構程式設計過程。2.回顧並掌握vc多檔案工程設計過程 3.掌握vc程式除錯過程。4.回顧c 模板和模板的程式設計。三 實驗內容 1.設計乙個單檔案結構程式完成從鍵盤輸入兩個數,輸出二者的 和 和 積 的結果。要...