(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
所有操作保證合法。
2、基本思想:
①用陣列模擬
②按照棧的定義,入棧出棧操作都只能在棧頂進行,遵循「先進後出」
3、步驟:
①用變數n記錄棧中元素的個數
②入棧時 ++n, 出棧時n–
③當n == 0時棧為空
#include
using
namespace std;
const
int n =
100010
;int m;
int a[n]
, n;
//這裡n是全域性變數,初始值為0
intmain()
else
if(op ==
"pop"
)//出棧
else
if(op ==
"empty"
)//判斷棧是否為空
else
//輸出棧頂
}return0;
}//該**引用acwing**的**
注意事項:
①第乙個元素時n == 1
②n是全域性變數,初始值為0
③按照題目要求,三四兩步最後加回車
AcWing 模擬棧 棧 模擬
時 空限制 1s 64mb 實現乙個棧,棧初始為空,支援四種操作 1 push x 向棧頂插入乙個數x 2 pop 從棧頂彈出乙個數 3 empty 判斷棧是否為空 4 query 查詢棧頂元素。現在要對棧進行m個操作,其中的每個操作3和操作4都要輸出相應的結果。第一行包含整數m,表示操作次數。接下...
AcWing 829 模擬佇列(C 演算法)
1 push x 向隊尾插入乙個數x 2 pop 從隊頭彈出乙個數 3 empty 判斷佇列是否為空 4 query 查詢隊頭元素。現在要對佇列進行m個操作,其中的每個操作3和操作4都要輸出相應的結果。輸入格式 第一行包含整數m,表示操作次數。接下來m行,每行包含乙個操作命令,操作命令為 push ...
AcWing 839 模擬堆(C 演算法)
1 題目 維護乙個集合,初始時集合為空,支援如下幾種操作 i x 插入乙個數x pm 輸出當前集合中的最小值 dm 刪除當前集合中的最小值 資料保證此時的最小值唯一 d k 刪除第k個插入的數 c k x 修改第k個插入的數,將其變為x 現在要進行n次操作,對於所有第2個操作,輸出當前集合的最小值。...