#include
//標頭檔案
queue<
int> q;
//定義佇列
q.front()
;//返回隊頭元素,但不刪除
q.pop()
;//刪除隊頭元素 但不返回值
q.empty()
;//判斷佇列是否為空,為空返回true
q.size()
;//返回佇列中元素個數
q.push
(x);
//向佇列加入新元素(入隊),x為值
q.back()
;//返回隊尾元素的值,但不刪除
#include
//標頭檔案
stack<
int> s;
//定義棧
s.top()
;//返回棧頂元素,但不刪除
s.pop()
;//刪除棧頂元素,但不返回
s.size()
;//返回棧內元素個數
s.push
(x);
//向棧內入棧新元素(入棧),值為x
s.empty()
;//判斷棧是否為空,為空返回true
紙牌遊戲:小貓釣魚
倆玩家分別持有一定數量紙牌
玩家1先出牌放到桌面,玩家2再出牌
如果玩家出的牌在桌面上已有,則該玩家可以獲得倆張牌中間所有的牌
倆玩家的牌庫可以看做是佇列,先進先出
桌面可看做棧,先進後出
queue<
char
> a;
//玩家1
queue<
char
> b;
//玩家2
stack<
char
> m;
//桌面
bool book[15]
;//標記陣列
//將字串中每個元素轉換為相應int值,便於book陣列標記
intz
(char x)
//玩家1贏牌
voidd1(
int t,
char s)
return;}
//玩家2贏牌
voidd2(
int t,
char s)
return;}
intmain()
for(
int i=
0;ilength()
;i++
)for
(int i=
0;ilength()
;i++
)while
(!a.
empty()
&&!b.
empty()
)//當倆玩家牌庫均不為空,玩家1先出牌
else
t=z(b.
front()
);if(book[t]
)else}if
(a.empty()
)else
if(b.
empty()
) cout<<
"前者獲勝!"
}
C STL 棧和佇列
結論 後進先出 last in first out 簡稱為lifo線性表。舉個例子 你在洗碗把洗好的碗編號為1 2 n依次摞起來,1號在最下面,向上編號依次增加,然後再從上到下把碗放好,這樣的話,先被洗的碗,就後被放好。2.佇列 佇列 queue 也是一種運算受限的線性表,它的運算限制與棧不同,是兩...
C STL 棧和佇列詳解
一.解釋 1.棧 結論 後進先出 last in first out 簡稱為lifo線性表。舉個例子 你在洗碗把洗好的碗編號為1 2 n依次摞起來,1號在最下面,向上編號依次增加,然後再從上到下把碗放好,這樣的話,先被洗的碗,就後被放好。2.佇列 佇列 queue 也是一種運算受限的線性表,它的運算...
C STL 棧和佇列詳解
一.解釋 1.棧 結論 後進先出 last in first out 簡稱為lifo線性表。舉個例子 你在洗碗把洗好的碗編號為1 2 n依次摞起來,1號在最下面,向上編號依次增加,然後再從上到下把碗放好,這樣的話,先被洗的碗,就後被放好。2.佇列 佇列 queue 也是一種運算受限的線性表,它的運算...