一、简介
栈(Stack)是一种特殊的线性数据集合,按照后进先出的规则进行操作,当我们在对栈进行入栈(push())或出栈(pop())操作时,只可以在栈顶进行操作。栈的实现结构可以是一维数组或链表来实现,用数组实现的栈叫作顺序栈,用链表实现的栈叫作链表栈。在Java中,顺序栈使用java.util.Stack类实现,链式栈使用java.util.LinkedList类实现。
顺序栈与链式栈的区别:
对于顺序栈Stack来说,它是Vector的子类,底层是通过一个数组来储存数据的,是线程安全的;
链表栈LinkedList的底层是通过一条链表来存储数据的,是线程不安全的。
二、栈中的常见方法
1、入栈
入栈操作(push)就是把新元素从栈顶放入栈中,新元素将会成为新的栈顶。
2、出栈
出栈操作(pop)就是把元素从栈顶弹出,出栈元素的前一个元素将会成为新的栈顶。
三、栈的常见应用场景
1、浏览器的回退和前进
我们只需要用两个栈(Sta