(1) 「push x」 – 向隊尾插入乙個數x;
(2) 「pop」 – 從隊頭彈出乙個數;
(3) 「empty」 – 判斷佇列是否為空;
(4) 「query」 – 查詢隊頭元素。
現在要對佇列進行m個操作,其中的每個操作3和操作4都要輸出相應的結果。
輸入格式
第一行包含整數m,表示操作次數。
接下來m行,每行包含乙個操作命令,操作命令為」push x」,」pop」,」empty」,」query」中的一種。
輸出格式
對於每個」empty」和」query」操作都要輸出乙個查詢結果,每個結果佔一行。
其中,」empty」操作的查詢結果為「yes」或「no」,」query」操作的查詢結果為乙個整數,表示隊頭元素的值。
資料範圍
1≤m≤100000,
1≤x≤109,
所有操作保證合法。
輸入樣例:
10push 6
empty
query
popempty
push 3
push 4
popquery
push 6
輸出樣例:no6
yes4
2、基本思想:
①用陣列模擬
②元素只能從隊尾插入,隊頭彈出,遵循「先進先出」
3、步驟:
①用 f 表示隊頭, r 表示隊尾,f 從0開始,r 從-1開始
②插入時隊尾加1,彈出時隊頭加1
③當隊頭大於隊尾時,隊為空
#include
using
namespace std;
const
int n =
100010
;int a[n]
, f, r =-1
;//f是對頭,r是隊尾
intmain()
else
if(op ==
"pop"
)else
if(op ==
"empty"
)else
}return0;
}//該**引用acwing**的**
注意事項:
r 從-1開始,這樣插入第乙個數時r == f, 此時a[f]是隊頭的值
AcWing 模擬佇列 佇列 模擬
時 空限制 1s 64mb 實現乙個佇列,佇列初始為空,支援四種操作 1 push x 向隊尾插入乙個數x 2 pop 從隊頭彈出乙個數 3 empty 判斷佇列是否為空 4 query 查詢隊頭元素。現在要對佇列進行m個操作,其中的每個操作3和操作4都要輸出相應的結果。第一行包含整數m,表示操作次...
報數 佇列模擬 C
有n個人圍成一圈,按順時針給他們編號為1 n。緊接著,指定編號為m的人開始報數,報數按順時針進行。報到d的人出列,下乙個人重新開始報數。按此規律,每次報到d的人都出列。要求同學程式設計求出出列的順序。輸入包括多組測試用例。對於每組用例,第一行是乙個整數n,表示人數。n 100。接下來n行是每個人的人...
AcWing 828 模擬棧(C 演算法)
1 push x 向棧頂插入乙個數x 2 pop 從棧頂彈出乙個數 3 empty 判斷棧是否為空 4 query 查詢棧頂元素。現在要對棧進行m個操作,其中的每個操作3和操作4都要輸出相應的結果。輸入格式 第一行包含整數m,表示操作次數。接下來m行,每行包含乙個操作命令,操作命令為 push x ...