資料結構實驗報告

2021-10-21 21:45:57 字數 1738 閱讀 5715

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.設計乙個單檔案結構程式完成從鍵盤輸入兩個數,輸出二者的 和 和 積 的結果。要...