AcWing 828 模擬棧(C 演算法)

2021-10-08 08:33:32 字數 1136 閱讀 7120

(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個操作,輸出當前集合的最小值。...