第四次作業

2022-08-11 22:18:11 字數 2600 閱讀 1690

這個作業屬於哪個課程

這個作業要求在**

/homework/11296

這個作業的目標

掌握棧的結構特性及其入棧,出棧操作;掌握佇列的結構特性及其入隊、出隊的操作,掌握迴圈佇列的特點及其操作。

學號2018204211

一、實驗目的

1、掌握棧的結構特性及其入棧,出棧操作;

2、掌握佇列的結構特性及其入隊、出隊的操作,掌握迴圈佇列的特點及其操作。

二、實驗預習

說明以下概念

1、順序棧:順序棧是棧的順序實現。順序棧是指利用順序儲存結構實現的棧。採用位址連續的儲存空間(陣列)依次儲存棧中資料元素,由於人棧和出棧運算都是在棧頂進行,而棧底位置是固定不變的,可以將棧底位置設定在陣列空間的起始處;棧頂位置是隨入棧和出棧操作而變化的,故需用乙個整型變數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

struct

sqstack;

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題的程式中,編寫乙個十進位制轉換為二進位制的數制轉換演算法函式(要求利用棧來實現),並驗證其正確性。

實現**

void conveshen(sqstack *s)

while(k

}int

main()

驗證

3、閱讀並執行程式,並分析程式功能。

#include#include

#include

#define m 20

#define elemtype chartypedef

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)

intmain()

if(sp->top==0

) printf(

"'('match')'!\n");

else

printf(

"'('not match')'!\n");

return0;

}

第四次作業

扎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...