這個作業屬於哪個課程
這個作業要求在**
/homework/11296
這個作業的目標
①掌握棧的結構特性及其入棧,出棧操作②掌握佇列的結構特性及其入隊、出隊的操作,掌握迴圈佇列的特點及其操作
學號2018204183
一、實驗目的
1、掌握棧的結構特性及其入棧,出棧操作;
2、掌握佇列的結構特性及其入隊、出隊的操作,掌握迴圈佇列的特點及其操作。
二、實驗預習
說明以下概念
1、順序棧:
由於棧是運算受限的線性表,因此線性表的儲存結構對棧也適用。棧的順序儲存結構簡稱為順序棧,它是運算受限的順序表。
類似於順序表的定義,順序棧也可用向量來實現。因為棧底位置是固定不變的,所以可以將棧底位置設定在向量兩端的任意乙個端點;棧頂位置是隨著進棧和退棧操作而變化的,故需用乙個整型量top來指示當前棧頂位置,通常稱top為棧頂指標。
2、鏈棧:
棧的鏈式儲存結構稱為鏈棧。它是運算受限的單鏈表,其插入和刪除操作僅限制在表頭位置上進行。由於只能在鍊錶頭部進行操作,故鏈棧沒有必要像單鏈表那樣需要附加頭結點。棧頂指標就是鍊錶的頭指標。
3、迴圈佇列:
迴圈佇列就是將佇列儲存空間的最後乙個位置繞到第乙個位置,形成邏輯上的環狀空間,供佇列迴圈使用。在迴圈佇列結構中,當儲存空間的最後乙個位置已被使用而再要進入佇列運算時,只需要儲存空間的第乙個位置空閒,便可將元素加入到第乙個位置,即將儲存空間的第乙個位置作為隊尾。
4、鏈隊
佇列的鏈式儲存結構簡稱為鏈佇列,它是限制僅在表頭刪除和表尾插入的單鏈表。
顯然僅有單鏈表的頭指標不便於在表尾做插入操作,為此再增加乙個尾指標,指向鍊錶上的最後乙個結點。於是,乙個鏈佇列由乙個頭指標和乙個尾指標唯一地確定。
三、實驗內容和要求
1.閱讀下面程式,將函式push和函式pop補充完整。要求輸入元素序列1 2 3 4 5 e,執行結果如下所示。
#include#include#define error 0
#define ok 1
#define stack_int_size 10 /*儲存空間初始分配量*/
#define stackincrement 5 /*儲存空間分配增量*/
typedef int elemtype; /*定義元素的型別*/
typedef structsqstack;
int initstack(sqstack *s); /*構造空棧*/
int push(sqstack *s,elemtype e); /*入棧*/
int pop(sqstack *s,elemtype *e); /*出棧*/
int createstack(sqstack *s); /*建立棧*/
void printstack(sqstack *s); /*出棧並輸出棧中元素*/
演算法分析:輸入元素序列1 2 3 4 5,為什麼輸出序列為5 4 3 2 1?體現了棧的什麼特性?
原因:按照先進後出的原則儲存資料,先進入的資料被壓入棧底,最後的資料在棧頂,需要讀資料的時候從棧頂開始彈出資料(最後乙個資料被第乙個讀出來)。
特性:先進後出,元素逆序輸出。
2.在第1題的程式中,編寫乙個十進位制轉換為二進位制的數制轉換演算法函式(要求利用棧來實現),並驗證其正確性。
3、閱讀並執行程式,並分析程式功能。
#include#include#include#define m 20
#define elemtype char
typedef struct
stacknode;
void init(stacknode *st);
void push(stacknode *st,elemtype x);
void pop(stacknode *st);
void init(stacknode *st)
void push(stacknode *st,elemtype x)
}void pop(stacknode *st)
int main()
輸入:2+((c-d)6-(f-7)a)/6
執行結果:
輸入:a-((c-d)*6-(s/3-x)/2
執行結果:
程式的基本功能:
判斷多項式的左右括號是否配對
四、實驗小結
對棧的結構特性及其入棧,出棧操作更加清楚,佇列的結構特性及其入隊、出隊的操作有了更多的認識,了解了迴圈佇列的特點及其操作。
第四次作業
扎ogu 典型產品 最高傳輸速率 ieee 802.11a wi fi5 802.11a 43m 450 zyxel p334u 54mbps 1500 zyxel p335u 54mbps 1600 ieee 802.11b d link di 624 a 54mbps 215 linksys w...
第四次作業
作業題一 vs2012 rc在介面上,比beta版更容易使用,彩色的圖示和按照開發 執行 除錯等環境區分的顏色方案讓人愛不釋手。vs2012整合了asp.net mvc 4,全面支援移動和html5,wf 4.5相比wf 4,更加成熟,期待已久的狀態極工作流回來了,更棒的是,現在它的設計器已經支援c...
第四次作業
專案一求1000以內所有偶數的和 includevoid main cout sum includevoid main while i 1000 cout sum includeint main while i 1001 cout 專案3 乘法口訣表 程式設計序,輸出乙個乘法口訣表,形如 1x1 1...