:本文參考了嚴蔚敏的《 資料結構》。
由於佇列先進先出,而棧後進先出,用兩個棧就可以模擬佇列
#include
using
namespace std;
#define null 0
#define ok 1
#define yes 1
#define no 0
#define error 0
#define false 0
#define maxsize 10
struct stillstack//定義乙個靜態棧1,棧頂指標指向棧頂元素位置
;int
initstack
(stillstack &s)
//對靜態棧的初始化
intpush
(stillstack &s,
int e)
//靜態棧入棧
intpop
(stillstack &s,
int&e)
//靜態棧出棧
intisempty
(stillstack s)
//用bottom=top來判定棧空
intisfull
(stillstack s)
//用bottom=top來判定棧滿
intlength
(stillstack s)
//用botto-top來求棧中元素個數
stillstack s1, s2;
intinqueue
(int x)
//進隊
else
//否則if(
!isempty
(s2)
)//若棧2不為空則佇列滿了
return error;
else
//若棧2為空,將棧1中所有元素倒入棧2中,然後元素進棧1
push
(s1, x)
;return ok;}}
intoutqueue
(int
&x)//出隊
else
//否則
pop(s2, x)
;return ok;}}
}int
queue_isempty()
//判隊空
intqueue_isfull()
//判隊滿
intmain()
}if(z ==0)
if(z ==2)
else}if
(z ==3)
else}if
(z =
999)
return ok;
}}
:本文參考了嚴蔚敏的《 資料結構》。 用兩個棧模擬佇列
問題 如何用兩個堆疊模擬實現乙個佇列?如果這兩個堆疊的容量分別是m和n m n 你的方法能保證的佇列容量是多少?如何模擬?首先棧是先進後出,佇列是先進先出,因此二者的差別主要在於進出的順序。假設有棧a n b m 當把n個資料全部放入棧a,此時a棧頂是n,棧底是1。再將a內的資料出棧存入棧b,此時棧...
用兩個棧模擬佇列
pragma once define ndebug include include includeusing namespace std include cmystack.h templateclass cqueue return stack2.top private stackstack1 sta...
7 兩個棧模擬佇列,兩個佇列模擬棧
利用兩個棧模擬佇列 stack1,stack2 首先向stack1當中放入資料,如果需要輸出資料,從stack2中delete資料,如果stack2為空,就把stack1中資料匯入stack2 include static.h include include templateclass cquue ...