JAVA数据结构与算法(三)栈
栈是一种只能在一端进行插入和删除操作的特殊线性表。
其中,允许插入和删除的一端称为栈顶,另一端称为栈底。通常,将栈的插入操作称为入栈,删除操作称为出栈。入栈时元素总是放在栈底,而出栈的总是栈顶元素。因此,栈中元素采用的是“后进先出”的方式。
创建一个栈
public class MyStack <T> {
private int top;
private int size;
private Object[] data;
private int len;
public MyStack(int len){ //用户可以自己指定一个栈的长度
this.top=-1; //没有元素的时候指针指向-1
this.size=0;
if(len<=0){
this.len=10;
}
data=new Object[10];
}
public MyStack(){
this.top=-1;
this.size=0;
data=new Object[10];
}
入栈
public boolean push(T t){
if(size==len){
return false;
}else{
data[++top]=t;
size++;
return true;
}
}
出栈
public T pop(){
if(size==0){
return null;
}else{
T t=(T) data[top--];
size--;
return t;
}
}
看一下栈顶
public boolean peek(){
if(size==0){
return false;
}else{
T t=(T) data[top];
System.out.println(t);
return true;
}
}
获取大小
public int size(){
return size;
}