网易首页 > 网易号 > 正文 申请入驻

《征服数据结构》队列和循环队列

0
分享至

摘要:

1,队列的介绍

2,队列的数组实现

3,队列的链表实现

4,循环队列的介绍

1,队列的介绍

队列(queue)是一种先进先出(FIFO, First-In-First-Out)的数据结构,就像大家排队买票一样,先来的先买。队列只允许在后端(rear)插入,在前端(front)删除。

队列是一种非常简单的数据结构,在考试和面试中遇到的也比较多,队列的实现方式一般有两种方式,一种是通过数组实现,一种是通过链表实现。

2,队列的数组实现

使用数组实现队列需要先声明一个数组,然后使用两个变量rear和front分别指向队列的尾部和头部,rear实际指向的是尾部元素的下一个位置。

因为数组的长度在初始化的时候就已经确定,当队列中元素的个数等于数组长度的时候就不能再添加了,这个时候也可以考虑扩容,原理比较简单,我们直接看下代码。

Java 代码:

public class Queue
                     
  {     private final Object[] data; // 队列中存放元素的数组。     private final int maxSize;// 队列的最大容量,超过最大容量可以考虑扩容。     private int size; // 队列中元素的个数     private int front = 0;// 队列的头,只能删除,指向队列的第一个元素     private int rear = 0; // 队列的尾,只能添加,指向队列最后一个元素的下一个位置     public Queue(int maxSize) {         if (maxSize <= 0)             throw new IllegalArgumentException("队列容量必须大于0 : " + maxSize);         this.maxSize = maxSize;         data = new Object[this.maxSize];     }     // 这地方可以扩容也可以抛异常,这里我们就不在扩容了,关于扩容,大家可以自己去实现     public void add(E val) {         if (isFull())             throw new IllegalStateException("队列已经满了,无法再加入……");         data[rear++] = val;// 添加元素。         size++;     }     // 删除元素     public E poll() {         if (isEmpty())             throw new IllegalStateException("队列是空的,无法删除……");         E res = (E) data[front];         data[front++] = null;         size--;         return res;     }     // 获取队列头部元素     public E top() {         if (isEmpty())             throw new IllegalStateException("队列为空");         return (E) data[front];     }     public boolean isEmpty() {// 队列是否为空         return size == 0;     }     public boolean isFull() {// 队列是否满         return rear == maxSize;     }     public int size() {// 队列中元素的个数         return size;     } }
          

C++代码:

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
一场65-60,赢球不可怕,可怕是郭士强赛后一席话 杨瀚森没发挥好

一场65-60,赢球不可怕,可怕是郭士强赛后一席话 杨瀚森没发挥好

刘哥谈体育
2026-06-24 03:28:13
陪玩陪睡仅是皮毛!继不放过50多女星后,18岁障碍男孩当爹 太荒谬

陪玩陪睡仅是皮毛!继不放过50多女星后,18岁障碍男孩当爹 太荒谬

东方不败然多多
2026-06-24 04:17:49
41岁C罗梅开二度!打破梅西纪录,4巨星同轮双响,压力给到凯恩

41岁C罗梅开二度!打破梅西纪录,4巨星同轮双响,压力给到凯恩

奥拜尔
2026-06-24 02:00:07
父亲入院手术,次日突然身亡!深圳一医院发生医疗事故,家属:手术中途停止

父亲入院手术,次日突然身亡!深圳一医院发生医疗事故,家属:手术中途停止

南方都市报
2026-06-23 16:47:35
央视再曝新骗局!商家手段炸裂,血坑老百姓数千万,已蔓延至全国

央视再曝新骗局!商家手段炸裂,血坑老百姓数千万,已蔓延至全国

精彩背后
2026-06-23 11:33:00
【环时深度】在对华关系上犯错数年,立陶宛失去了什么

【环时深度】在对华关系上犯错数年,立陶宛失去了什么

环球网资讯
2026-06-23 06:49:10
大反转!确认系摆拍

大反转!确认系摆拍

申消费
2026-06-23 10:56:37
与梅西一同庆祝记者:这是我的人生照片!我手机的消息都快爆了

与梅西一同庆祝记者:这是我的人生照片!我手机的消息都快爆了

云隐南山
2026-06-23 16:10:12
常年不祭祖不上坟的家庭,久而久之,大多会出现这几种结局

常年不祭祖不上坟的家庭,久而久之,大多会出现这几种结局

老特有话说
2026-06-23 14:08:53
WTT美国大满贯:坏消息!梁靖崑退赛,14人出发,王楚钦晋级64强

WTT美国大满贯:坏消息!梁靖崑退赛,14人出发,王楚钦晋级64强

国乒二三事
2026-06-23 11:20:14
历史总是惊人地相似!解放台湾,康熙340年前的经验值得学习借鉴

历史总是惊人地相似!解放台湾,康熙340年前的经验值得学习借鉴

近史谈
2026-06-09 16:59:24
iPhone Ultra 9 月发布,售价很猛!

iPhone Ultra 9 月发布,售价很猛!

花果科技
2026-06-22 15:35:19
谢逸枫:颤抖吧!前5月卖地收入大跌,不足9000亿元

谢逸枫:颤抖吧!前5月卖地收入大跌,不足9000亿元

谢逸枫看楼市
2026-06-23 15:10:02
他手握14个冠军,如今再次打破全国纪录,和张雨霏关系更进一步

他手握14个冠军,如今再次打破全国纪录,和张雨霏关系更进一步

青梅侃史啊
2026-06-23 19:31:30
七项数据告诉你,姆巴佩超越梅西登顶世界杯射手王,只是时间问题

七项数据告诉你,姆巴佩超越梅西登顶世界杯射手王,只是时间问题

十点街球体育
2026-06-23 16:59:17
谷歌32亿美元押注自研芯片,剑指英伟达AI霸权

谷歌32亿美元押注自研芯片,剑指英伟达AI霸权

报错免疫体
2026-06-23 02:47:50
华为正式宣布收取WiFi7专利费后,一个奇怪的现象就出现了

华为正式宣布收取WiFi7专利费后,一个奇怪的现象就出现了

春雨说科技
2026-06-22 16:31:51
裁员5万人,利润暴跌54%,连续22年霸榜的“神车”,败给了时代

裁员5万人,利润暴跌54%,连续22年霸榜的“神车”,败给了时代

快刀财经
2026-06-23 08:11:44
越南,已经主动从中国的经济巨舰上跳船了!

越南,已经主动从中国的经济巨舰上跳船了!

回京历史梦
2026-06-22 18:43:18
明眼人其实都看的出来,梁洛施之所以和马浴柯在一起,根本不是为了捞一笔钱的,而是因为马浴柯接受她的过往!

明眼人其实都看的出来,梁洛施之所以和马浴柯在一起,根本不是为了捞一笔钱的,而是因为马浴柯接受她的过往!

LULU生活家
2026-06-22 20:43:04
2026-06-24 05:07:00
数据结构和算法
数据结构和算法
专门介绍和写算法题解的号
273文章数 4关注度
往期回顾 全部

科技要闻

48名中国开发者联名举报苹果

头条要闻

葡萄牙5-0乌兹别克斯坦 C罗梅开二度

头条要闻

葡萄牙5-0乌兹别克斯坦 C罗梅开二度

体育要闻

扬尼斯去了迈阿密:凯尔特人怎么办?

娱乐要闻

内娱95后顶流格局发生潜移默化的变化

财经要闻

AI“算力稀缺”信仰开始动摇?

汽车要闻

施鹏泽:为什么奥迪E7X强调座舱气味安全?

态度原创

家居
房产
旅游
艺术
健康

家居要闻

绿意盎然 自然之境

房产要闻

洞察新局|预算不变 居住升级 2026广州置业成本观察

旅游要闻

端午假期忻州市累计接待游客98.29万人次,同比增长10.31%

艺术要闻

高约400米!深圳湾金融中心大厦,冲出正负零

同样是中风,急救方向竟完全相反?

无障碍浏览 进入关怀版