栈和递归

栈是一种特殊的线性表,只能在一端进行操作

  • 后进先出,last in first out, LIFO
  • 频繁地在尾部(栈顶)进行操作
  • 可由动态数组或链表实现

接口设计

int size(); //元素的数量
boolean isEmpty(); //是否为空
void push(E element); //入栈
E pop(); //出栈
E top(); //获取栈顶元素

实现

如果直接继承ArrayList或LinkedList,但是这样做的问题是Stack类对象也有了父类中的方法,而对于栈来说是不需要数组或链表中的那些方法的。
所以这里使用组合更好一点,把动态数组或链表作为栈的一部分,这样Stack类对象就只有栈对应的方法

栈的应用

浏览器的前进、后退,类似的还有软件的撤销、恢复操作

队列

posted @ 2020-12-02 11:36  Lylee  阅读(90)  评论(0)    收藏  举报