5.10笔记

一,队列的概念:

1队列(Queue)是特殊的线性表,先进先出FIFO,只允许在队列的前端(front)进行删除操作,而在队列的尾部(rear)进行插入操作,

没有元素时,称为空队列。

2队列可以分为:

单向队列(Queue)只允许在一端插入数据,另一端删除数据。

与栈不同的地方,队列内部的数据不总是从数组的下标0开始的,因为在移除队列头的元素后,队头的指针会往较高的数组的索引的位置。

3实现队列需要实现:

1、队尾插入数据

2、队头删除数据

3、判断是否为空

4、获取队列中实际的元素个数

5、查看队头的数据

二,双向队列的概念:

在队列的两端都可以进行删除和添加元素的操作。

insert_Left() remove_Left() insert_Right() remove_Right()

如果禁止双向队列的insert_Left()和 remove_Right()方法(或者禁用insert_Right()和remove_Left() 方法),双向队列的功能就跟单向队列的功能一样。

如果禁止insert_Left() remove_Left()方法(或者禁用 insert_Right() remove_Right()),双向队列的功能就跟栈的功能一样。

三,方法:

四:操作方法:

插入元素

addFirst(): 向队头插入元素,如果元素为空,则发生NPE

addLast(): 向队尾插入元素,如果为空,则发生NPE

offerFirst(): 向队头插入元素,如果插入成功返回true,否则返回false

offerLast(): 向队尾插入元素,如果插入成功返回true,否则返回false

移除元素

removeFirst(): 返回并移除队头元素,如果该元素是null,则发生NoSuchElementException

removeLast(): 返回并移除队尾元素,如果该元素是null,则发生NoSuchElementException

pollFirst(): 返回并移除队头元素,如果队列无元素,则返回null

pollLast(): 返回并移除队尾元素,如果队列无元素,则返回null

获取元素

getFirst(): 获取队头元素但不移除,如果队列无元素,则发生NoSuchElementException

getLast(): 获取队尾元素但不移除,如果队列无元素,则发生NoSuchElementException

peekFirst(): 获取队头元素但不移除,如果队列无元素,则返回null

peekLast(): 获取队尾元素但不移除,如果队列无元素,则返回null

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Comelliaz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值