题解 | #【模板】栈#
【模板】栈
http://www.nowcoder.com/practice/104ce248c2f04cfb986b92d0548cccbf
参考队列模板写的,栈主要定义栈顶size,数组data,容量maxSize
import java.util.Scanner;
class MyStack{
private int size=0;
private int[] data;
private int maxSize;
public MyStack(int maxSize){
this.maxSize =maxSize;
this.data= new int[maxSize];
}
public void push(int x){
if(this.size == maxSize){
System.out.println("error");
} else {
this.data[size++] = x;
}
}
public void pop(){
if(this.size==0) System.out.println("error");
else {
System.out.println(this.data[size-1]);
this.size--;
}
}
public void top(){
if(this.size==0) System.out.println("error");
else {
System.out.println(this.data[size-1]);
}
}
}
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int s = Integer.parseInt(in.nextLine());
MyStack stack= new MyStack(s);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextLine()) { // 注意 while 处理多个 case
String[] arr = in.nextLine().split(" ");
switch(arr[0]){
case "push": stack.push(Integer.parseInt(arr[1]));break;
case "pop": stack.pop();break;
case "top": stack.top();break;
default: break;
}
}
}
}