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