AcWing 829 模擬佇列(C 演算法)

2021-10-08 08:45:55 字數 1231 閱讀 1281

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