剑指offer——栈与队列相关 Queue,Deque,Stack

不想你离开。 提交于 2020-05-04 05:15:25

剑指offer——栈的压入、弹出序列

 

剑指offer——用两个栈来实现队列

 

剑指offer——调整数组顺序使奇数位于偶数前面

 

 

使用队列时注意:

判断是否为空(获取但不删除) queue.peek() == null  区别于queue.element()为空时抛异常

添加元素:queue.offer()  满了时 返回false,而add()满了时,会报错

弹出元素:queue.poll()  为空时 返回null, 而remove()满了时,会抛异常

而且要注意:Queue是一个接口,不能直接使用它,而需要使用实现了它的类

参考:Java 集合深入理解(9):Queue 队列

 

 Deque双端队列:

这里写图片描述

Deque 是 Double ended queue (双端队列) 的缩写,读音和 deck 一样,蛋壳。

Deque 继承自 Queue,直接实现了它的有 LinkedList, ArayDeque, ConcurrentLinkedDeque 等。

Deque 支持容量受限的双端队列,也支持大小不固定的。一般双端队列大小不确定。

Deque 接口定义了一些从头部和尾部访问元素的方法。比如分别在头部、尾部进行插入、删除、获取元素。和 Queue

类似,每个操作都有两种方法,一种在异常情况下直接抛出异常奔溃,另一种则不会抛异常,而是返回特殊的值,比如 false, null …

参考:Java 集合深入理解(10):Deque 双端队列

栈实现:

  • push 入栈
  • pop 栈顶元素出栈,并返回
  • peek 获取栈顶元素,并不删除
  • empty 

参考:Java 集合深入理解(13):Stack 栈

 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!