用数组实现栈
package StackCode;
import java.util.Scanner;
public class ArrayStackDemo {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
//初始化栈大小
int n=Integer.parseInt(scanner.nextLine());
StackTest stackTest=new StackTest(n);
//栈操作
while (scanner.hasNextLine()) {
String string=scanner.nextLine();
String[] s=string.split(" ");
if ("push".equals(s[0])) {
stackTest.push(Integer.parseInt(s[1]));
}else if ("pop".equals(s[0])) {
stackTest.pop();
}else {
stackTest.top();
}
}
}
}
//用数组实现栈
class StackTest {
private int size=0;//元素个数
private int maxSize;//最大容量
private int[] data;//存放数据
private int top=0;//栈顶指针
//初始化栈
public StackTest(int maxSize) {
this.maxSize=maxSize;
this.data=new int[maxSize];
}
//入栈
public void push(int i) {
if (this.size==this.maxSize) {
System.out.println("error");
return;
}
data[top++]=i;
this.size++;
}
//出栈
public void pop() {
if (this.size==0) {
System.out.println("error");
return;
}
System.out.println(data[--top]);
this.size--;
}
//输出栈顶元素
public void top() {
if (this.size==0) {
System.out.println("error");
return;
}
System.out.println(data[top-1]);
}
}