Test Message

b923: stack 堆疊的模板題

內容

我想要請你實作 stack 的幾種操作

1.刪除堆頂元素

2.輸出頂端元素

3.丟數字進堆疊


輸入

第一行有一個 n (n <= 100000)

接下來有 n 行

每一行一開始有一個數字,代表哪一種操作

如果數字為 1,代表刪除操作

如果數字為 2,請輸出當前 stack 的頂端元素

如果數字為 3,請在讀入一個整數丟進堆疊

5
3 10
3 15
2
1
2

輸出

對於每個操作 2 請輸出一個數字

15
10


解題思路

測資不大,直接開 n 的大值大小的陣列來模擬 stack 即可。


完整程式碼

AC (2ms, 80KB)
int stack[100001];

int main()
{
int n, sTop;
char cmd;
while (scanf(" %d", &n) == 1)
{
sTop = 0;
while (n--)
{
scanf(" %c", &cmd);
if (cmd == '1')
sTop--;
else if (cmd == '2')
printf("%d\n", stack[sTop]);
else
scanf(" %d", &stack[++sTop]);
}
}
return 0;
}