栈是一种特殊的线性表,只能在一端进行操作,栈顶允许操作,而栈底不能操作。
栈的主要特点是:先进后出,后进先出
栈的代码可以用数组和链表实现,这里我就用数组实现栈。
//基于数组实现的顺序栈
public class MyStack {
private String[] items; //数组
//初始化数组,申请一个大小为n的数组空间
public MyStack(int n){
this.items=new String[n];
}
//入栈
public boolean push(String item){
String[] tem=new String[items.length+1];
for(int i=0;i<items.length;i++){
tem[i]=items[i];
}
tem[items.length]=item;
items=tem;
return true;
}
//出栈
public String pop(){
if(items.length==0) return null;//判断是否为空
String temp=items[items.length-1];
String[] tem=new String[items.length-1];
for(int i=0;i<items.length-1;i++){
tem[i]=items[i];
}
items=tem;
return temp;
}
//查看栈顶元素
public String peek(){
return items[items.length-1];
}
//栈是否为空
public boolean isEmpty(){
return items.length==0;
}
}
以上便是栈的数组实现。