百煉OJ 棧的基本操作

2021-09-12 11:40:55 字數 1287 閱讀 1901

總時間限制: 1000ms 記憶體限制: 1000kb

描述

棧是一種重要的資料結構,它具有push k和pop操作。push k是將數字k加入到棧中,pop則是從棧中取乙個數出來。

棧是後進先出的:把棧也看成橫向的乙個通道,則push k是將k放到棧的最右邊,而pop也是從棧的最右邊取出乙個數。

假設棧當前從左至右含有1和2兩個數,則執行push 5和pop操作示例圖如下:

push 5          pop
棧 1 2 -------> 1 2 5 ------> 1 2

現在,假設棧是空的。給定一系列push k和pop操作之後,輸出棧中儲存的數字。若棧已經空了,仍然接收到pop操作,

則輸出error。

輸入

第一行為m,表示有m組測試輸入,m<100。

每組第一行為n,表示下列有n行push k或pop操作。(n<150)

接下來n行,每行是push k或者pop,其中k是乙個整數。

(輸入保證同時在棧中的數不會超過100個)

輸出

對每組測試資料輸出一行。該行內容在正常情況下,是棧中從左到右儲存的數字,數字直接以乙個空格分隔,如果棧空,則不作輸出;但若操作過程**現棧已空仍然收到pop,則輸出error。

樣例輸入

2

4push 1

push 3

poppush 5

1pop

樣例輸出

1 5

error

思路:

這題很簡單,直接附**,應該能很輕鬆就看得懂。

**如下:

#include#include#include#includeusing namespace std;

int main()

else if(temp=="pop")

else

jg=1;

}else

jg=1;

--num;

}if(jg==1)

//出現意外情況 如pop次數多於push

if(!zhan.empty())

for(int j=0;jcout<}

}return 0;

}

1017 裝箱問題 百煉oj

include includeconst int len 6 using namespace std int main if sum 0 break int res num 5 num 4 num 3 num 2 3 4 int need2 0 if num 2 4 1 need2 5 else i...

百煉oj 2818 密碼

bob 和 alice 開始使用一種全新的編碼系統。它是一種基於一組私有鑰匙的。他們選擇了n個不同的數a1 an,它們都大於0小於等於n。機密過程如下 待加密的資訊放置在這組加密鑰匙下,資訊中的字元和金鑰中的數字一一對應起來。資訊中位於i位置的字母將被寫到加密資訊的第ai個位置,ai 是位於i位置的...

鍊錶棧的基本操作的實現 入棧 出棧 清空

利用鍊錶的結構實現棧的功能 入棧 出棧 清空 如下 linkstack.h 鍊錶棧的標頭檔案 include class node class stack void push int val 入棧 int pop 出棧 int len 判斷長度 bool isempty void clear 清空棧...