傳說中的資料結構_JAVA

鵬不是這個朋發表於2020-10-01

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
Output
4
3

empty
Hint

import java.util.Scanner;

public class Main {

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

相關文章