一、栈
1.什么是栈?
栈stack
是一种特殊的线性表,这种线性表只能在固定一端(通常认为是线性表的尾端)进行插入,删除操作,遵循先进后出
的原则。
对于栈而言,允许进行插入,删除操作的一端被称为栈顶top
,另一端咋被称为栈底bottom
。
2.java中的栈
类:Stack
方法:
https://docs.oracle.com/javase/8/docs/api/java/util/Stack.html
二、队列
1.什么是队列?
队列Queue
是一种特殊的线性表,他只允许在表的前端front
进行删除操作,只允许在表的后端rear
进行插入操作,进行插入操作的端称为队尾,进行删除的端称为队头。
对于一个队列来说,每个元素总是从队列的rear端进入队列,然后等待该与元素之前的所有元素出队之后,当前元素才能出队。因此,队列是一种先进先出FIFO
的线性表。
2.java中的队列
接口:Queue
方法:
https://docs.oracle.com/javase/8/docs/api/java/util/Queue.html
三、双向队列
1.什么是双向队列?
允许在两端进行插入、移除元素的队列。
2.java中的双向队列
接口:Deque
方法:
https://docs.oracle.com/javase/8/docs/api/java/util/Deque.html
四、优先队列
1.什么是优先队列?
优先队列PriorityQueue
与普通队列不同,普通队列基于先进先出FIFO
处理数据对象,而优先队列基于优先级
处理对象。
这个优先队列中的元素可以默认自然排序
或者通过提供的Comparator(比较器)
在队列实例化的时排序。
2.java中的优先队列
类: PriorityQueue
方法:
constructors
methods