传说中的数据结构
傳說中的數據結構
Time Limit:?1000MS?Memory Limit:?65536KB Submit?StatisticProblem Description
在大學里學習了一個學期了,大家大都對所學的專業有了基本的了解。許多同學也已經知道了到大二要開一門課叫做《數據結構》,那么今天給你們提前講一下一個最簡單的數據結構:棧。 棧的基本操作有3種:push,pop,top。例如,給你一個數列:1 2 3 4?
push:向棧中加入一個數,比如push 5,數列就變成1 2 3 4 5。
pop:從棧中刪除最后面的數,比如 pop,數列就變成1 2 3。(數列變化,但是不輸出。如果棧是空的,即不能 pop 操作,那就輸出 error ,但是接下來的操作還是要繼續的)。?
top:找出棧最后面的數,比如 top ,你就要輸出4。(如果棧中沒有數的話,即不能 top 操作,那就輸出 empty)。
? ? ? 然后,你們可以看出來了吧,其實棧就是一個先進后出(越先進去的元素越后面出來)的數據結構,很簡單吧,下面要檢驗下你們的學習效果了。
Input
輸入包含多組測試數據.
每組數據的第一行為一個整數 T(1 <= T <= 1000 ),接下來 T 行為對棧的操作。
Output
如果操作是top,那么輸出最后面的數,如果棧中沒有數的話,那就輸出“empty”(不含引號)。
如果操作是pop且棧是空的,那么輸出 “error”(不含引號)。
在每組測試數據的最后多加一次換行。
Example Input
8 push 1 push 2 push 3 push 4 top pop top pop 3 push 1 pop topExample Output
4 3empty #include <stdio.h> #include <stdlib.h> #include <string.h> int main() {int T,k,i,n[100000];char s[4];while(scanf("%d",&T)!=EOF){i=0;for(k=0;k<T;k++){scanf("%s",s);if(strcmp(s,"top")==0){if(i>=1){printf("%d\n",n[i]);}else{printf("empty\n");}}if(strcmp(s,"pop")==0){if(i>=1){i--;}else{printf("error\n");}}if(strcmp(s,"push")==0){i++;scanf("%d",&n[i]);}fflush(stdin);}printf("\n");}return 0; }總結
- 上一篇: iOS框架搭建
- 下一篇: 【python实战】python一行代码