傳說中的數據結構 JAVA

傳說中的數據結構
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem 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”(不含引號)。
在每組測試數據的最後多加一次換行。
Sample Input

8
push 1
push 2
push 3
push 4
top
pop
top
pop
3
push 1
pop
top

Sample Output

4
3

empty

Hint

Source
qinchuan

//next()不會吸取字符前/後的空格/Tab鍵,只吸取字符,開始吸取字符(字符前後不算)直到遇到空格/Tab鍵/回車截止吸取;
//nextLine()吸取字符前後的空格/Tab鍵,回車鍵截止。

//char c=s.charAt(i);
import java.util.*;  

public class Main1{
public static void main(String [] args) {
	Scanner in = new Scanner(System.in);
	int []a = new int[1100];
	int num,t;
	String str;
   while(in.hasNext())
   {
	   num = -1;
	  t = in.nextInt();
	  while(t-->0)
	  {
		  str = in.next();
		  if(str.compareTo("push")==0)
		  {
			  a[++num]=in.nextInt();
		  }
		  else if(str.compareTo("pop")==0)
		  {
			  if(num == -1)
				  System.out.println("error");
			  else num--;
		  }
		  else if(str.compareTo("top")==0)
		  {
			  if(num == -1)
			  {
				  System.out.println("empty");
			  }
			  else System.out.println(a[num]);
		  }
	  }
	  System.out.println();
   }

   in.close();
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章