栈是一种线性数据结构
栈的特点是先进后出,即后来入栈的要先出栈,类似于存钱罐,先拿出来的是最后存进去的
因此实现起来还是较为容易
这里继续使用了之前定义好的类,其中的方法可以在之前的博客中找到
/**
* 继续使用了之前自定义好的ArrayList类
* 可以看之前的博客找到,部分方法在Queue博客中补充
* @param <E>
*/
public class MyStack<E>{
private ArraysList<E> arraysList;
public MyStack() {
arraysList=new ArraysList<>();
}
/**
* 查看栈顶元素
* @return 元素
*/
public E peek(){
return arraysList.get(arraysList.size-1);
}
/**
* 入栈
* @param e
*/
public void push(E e){
arraysList.add(e);
}
/**
* 出栈,取出栈顶元素
* @return
*/
public E pop(){
return arraysList.removeLast();
}
public int size(){
return arraysList.size;
}
public boolean isEmpty(){
return arraysList.isEmpty();
}
}
基于数组的栈很容易实现,我们接下来可以看看如何使用链表实现