一、實驗學時: 2學時
二、實驗目的
三、實驗內容
順序棧的建立、取棧頂元素、入棧、出棧
佇列的建立、取隊中元素、入隊、出隊、迴圈佇列中入隊、出隊操作
四、主要儀器裝置及耗材
五、實驗步驟
分析問題
寫出演算法
編制程式
上機除錯
分析結果
六、程式清單
1.順序棧
#include
#include
#define ok 0
#define error -1
#define overflow -2
#define maxsize 100
//順序棧儲存空間的初始分配量
//建立順序棧
typedef
struct
sqstack;
//初始化順序棧
intinitstack
(sqstack &s)
//壓棧
intpush
(sqstack &s,
int e)
//彈棧
intpop
(sqstack &s,
int&e)
//取棧頂元素
intgettop
(sqstack s)
intmain()
//取棧頂元素
printf
("棧頂元素為%d\n"
,gettop
(s))
;while
(s.top!=s.base)
}
2.鏈棧#include
#include
#define ok 0
#define error -1
#define overflow -2
//建立鏈棧
typedef
struct stacknode
stacknode,
*linkstack;
//初始化
intinitstack
(linkstack &s)
//入棧
intpush
(linkstack &s,
int e)
//出棧
intpop
(linkstack &s,
int&e)
//取棧頂元素
intgettop
(linkstack &s)
intmain()
//取棧頂元素
printf
("棧頂元素為:%d\n"
,gettop
(s))
;while
(s!=
null
)}
3.迴圈佇列#include
#include
#define maxsize 6
//建立順序佇列
typedef
struct
sqqueue;
//初始化順序佇列
intinitqueue
(sqqueue &q)
//入隊
intenqueue
(sqqueue &q,
int e)
//出隊
intdequeue
(sqqueue &q,
int&e)
//取隊頭元素
intgethead
(sqqueue q)
//求迴圈佇列長度
intqueuelength
(sqqueue q)
//胡亂寫的...
void
f1(sqqueue &q,
int&num)
if(num==0)
printf
("檢測到0,入隊結束!\n請輸入要出隊的元素個數:");
int count,i;
scanf
("%d"
,&count);if
(count>
queuelength
(q))
printf
("佇列中元素不足...\n");
for(i=
0;i)printf
("請輸入要入隊的東東:");
scanf
("%d"
,&num);f1
(q,num);}
intmain()
4.鏈隊#include
#include
#define maxsize 6
//建立佇列的鏈式儲存結構
typedef
struct qnode
qnode,
*queueptr;
typedef
struct
linkqueue;
//初始化
intinitqueue
(linkqueue &q)
//入隊
intenqueue
(linkqueue &q,
int e)
//出隊
intdequeue
(linkqueue &q,
int&e)
//取隊頭元素
intgethead
(linkqueue q)
intmain()
七、執行結果及分析
1.順序棧
2.鏈棧
3.迴圈佇列
4.鏈隊
和迴圈佇列的測試差不多
八、小總結
1.順序棧
2.鏈棧
3.迴圈佇列
4.鏈隊
順序棧 鏈棧 順序隊和鏈隊小結
順序棧和順序隊的儲存結構都為順序儲存,鏈棧和鏈隊的儲存結構為鏈式儲存。順序棧和順序隊為受約束的順序表 可以看成與陣列類似 鏈棧和鏈隊和單鏈表沒有什麼區別。如何寫出這些相應的程式 呢?本人認為有以下幾點 1 清楚順序棧 順序隊 鏈棧和鏈隊的結構及其基本性質,如 隊列為 先進先出 棧為 先進後出 棧需要...
順序棧 鏈棧基本操作
include stdafx.h include stdio.h include stdlib.h define stack max size 7 int stackdata stack max size define stack max size 14 int stackdata stack ma...
順序棧 鏈棧基本操作
include stdafx.h include stdio.h include stdlib.h define stack max size 7 int stackdata stack max size define stack max size 14 int stackdata stack ma...