###### # ##### # import java.util.Scanner;
class stackDemo
{
public static void main(String[] args)
{
String str="";
Scanner in=new Scanner(System.in);
boolean flag=true;
//测试一把
//定义一个栈的大小
int n;
n=in.nextInt();
while(n!=0){
stack s=new stack(n);
for(int i=1;i<=n;i++){
str=in.next();
switch(str){
case "A":
s.show();
break;
case "P":
int value;
value=in.nextInt();
s.addstack(value);
break;
case "O":
s.pop();
break;
}
}
System.out.println();
n=in.nextInt();
}
}
}
//定义一个栈的属性
class stack
{
public int maxSize;//栈的空间大小
public int[] arr;//存放的数据容器
public int top=-1;//栈顶的值,一开始是-1
//初始化方法
public stack(int max){
this.maxSize=max;
arr=new int[this.maxSize];
}
//向栈中添加数据(入栈);
public void addstack(int value){
//首先判断栈中的数据是否已经满了
if(isfull()){
System.out.println("栈元素已经满了~~");
return;
}
top++;
arr[top]=value;//添加数据
}
//向栈中取出数据(出栈)
public void pop(){
//判断栈中是否为空,
if(isempty()){
return;
}
top--;
}
//遍历栈中的数据
public void show(){
//判断是否已经为空
if(isempty()){
System.out.println("E");
return;
}
System.out.printf("%d\n",arr[top]);
}
//判断栈中的元素是否已经满了
public boolean isfull(){
return this.top==this.maxSize-1;//当栈顶和栈的最大空间相等的时候就满了
}
//判断是否为空
public boolean isempty(){
return this.top==-1;
}
}
0.0分
0 人评分