循环队列:

package SeqQueue;public class Queue {private int data[];private int queueSize;private int front,rear;public Queue(){data = new int[100];queueSize = 100;front = rear = 0;}public Queue(int n){queueSize = n;data = new int[queueSize];front = rear = 0;}public boolean isFull(){if ((rear+1)%queueSize==front) return true;return false;}public boolean isEmpty(){if (front==rear) return true;return false;}public int lenQueue(){return (rear-front+queueSize)%queueSize;}public boolean enQueue(int e){if (isFull()) return false;data[rear] = e;rear = (rear+1)%queueSize;return true;}public boolean deQueue(){if (isEmpty()) return false;front = (front+1)%queueSize;return false;}public int frontQueue(){if (isEmpty()){System.out.println("The queue is empty");return 0;}return data[front];}
}

测试类:

package SeqQueue;public class TestQueue {public static void main(String[] args){Queue q = new Queue();q.enQueue(25);q.enQueue(56);q.enQueue(123);q.enQueue(8);System.out.println(q.frontQueue());q.deQueue();System.out.println(q.frontQueue());System.out.println(q.lenQueue());q.deQueue();q.deQueue();q.deQueue();}
}

链队列:

package LinkQueue;public class Queue {private class queueNode{private int data;private queueNode next;public queueNode(int e){data = e;next = null;}public queueNode(){data = 0;next = null;}}private queueNode front,rear;public Queue(){rear = new queueNode();rear.next = null;front = rear;}public boolean isEmpty(){return front==rear;}public boolean enQueue(int e){queueNode s = new queueNode(e);rear.next = s;rear = s;return true;}public boolean deQueue(){if (isEmpty()) return false;queueNode p = front.next;front.next = p.next;if (p==rear) rear = front;p.next = null;return true;}public int frontQueue(){if (isEmpty()){System.out.println("The queue is empty");return 0;}return front.next.data;}public int lenQueue(){int j = 0;queueNode p = front.next;while(p!=null){j++;p = p.next;}return j;}}

测试类:

package LinkQueue;import LinkQueue.Queue;public class TestQueue {public static void main(String[] args){Queue q = new Queue();q.enQueue(25);q.enQueue(56);q.enQueue(123);q.enQueue(8);System.out.println(q.frontQueue());q.deQueue();System.out.println(q.frontQueue());System.out.println(q.lenQueue());q.deQueue();q.deQueue();q.deQueue();}
}

Java实现队列(循环队列,链队列)相关推荐

  1. java先进先出 循环队列_java队列--先进先出(循环队列、链队列)

    队列:只允许在一端进行插入操作(队尾),在另一端进行删除操作(队头). 队列的特征就是: 先进先出. 队列的思想及实现也同样非常简单.在生活中的各种常常都需要排队进行,键盘中缓存区.操作系统中的作业调 ...

  2. 【数据结构与算法】循环队列和链队列的比较

    前言 本文原本是一篇随感+笔记,被翻出来后就整理发了博客. 不曾想能上搜索头条,既如此,决定更新一下,加上必要的阐释,避免影响有需求的读者. (我这么理解大家,如果有需要的话,是不是可以考虑点个赞或者 ...

  3. Java数组实现循环队列

    Java数组实现循环队列 上一节(Java实现队列--顺序队列.链式队列)我们使用数组实现了顺序队列,但是在tail == n时会有数据搬移操作,这样入队操作性能就会受到影响.这里我们使用循环队列的解 ...

  4. c语言循环队列入列算法,C语言——循环队列和链队列的基本运算

    // 循环队列 #include #include "SeqQue.h" // 循环队列的基本运算 /* const int maxsize = 20; typedef struc ...

  5. 数据结构与算法(3-2)队列(顺序队列、循环队列与链队列)

    目录 一.顺序队列 1.存储结构 2.入队和出队 总代码 二.循环队列 总代码: 三.链队列 1.存储结构 2.入队和出队 总代码 一.顺序队列 队列特征:先进后出.后进后出. 1.存储结构 //队列 ...

  6. 【笔记 】栈底层 循环队列的处理 链栈 链队列

    栈 队列 解决"假溢出"问题的方法: 采用循环队列方式:将数组的头尾看作是相邻的元素, 即将元素data[0]看作是data[maxlen-1]的下一个元素.如图所示. 因此,插入 ...

  7. 顺序队列,循环队列,链队列

    队列 先看队列接口和结点类 1. 顺序队列 2. 循环队列 3. 链队列 先看队列接口和结点类 package com.lovely.queue;/** * 2020年4月26日下午2:42:44* ...

  8. java循环队列_Java版-数据结构-队列(循环队列)

    前情回顾 在上一篇,笔者给大家介绍了数组队列,并且在文末提出了数组队列实现上的劣势,以及带来的性能问题(因为数组队列,在出队的时候,我们往往要将数组中的元素往前挪动一个位置,这个动作的时间复杂度O(n ...

  9. 【数据结构】队列(链队列、循环队列)的存储结构及基本运算(C语言)

    目录 1. 队列基本概念 2. 链队列 2.1 代码+注释 2.2 运行结果 3. 循环队列 3.1 代码+注释 3.2 运行结果 1. 队列基本概念 队列(Queue)是一种限定性线性表,它只允许在 ...

最新文章

  1. Vmware虚拟机的复制后无法使用的问题和解决
  2. Java知识系统回顾整理01基础04操作符07Scanner
  3. python入门指南 小说-Python 入门指南
  4. 全方面了解和学习PHP框架 PHP培训教程
  5. javascript中的命名规则和方法
  6. 阿里云ECS服务器CentOS7上用户管理操作
  7. MOSS2010中如何用代码给托管元数据类型的栏目赋值
  8. Acwing 1243 糖果 - IDA*估值函数
  9. spark 稀疏矩阵存储详细解读
  10. 腾讯云短信封装(v3版本)
  11. 自制汉字字库,识别汉字(三)(汉字篇)
  12. Java web项目中获取WebRoot目录下的文件
  13. Ultrasound Open Platforms for Next-Generation Imaging Technique Development
  14. macOS hashcat 安装
  15. cx oracle 连接编码,python用cx_Oracle连接oracle编码问题解决办法
  16. ASE0510SH-ASEMI的MOS管ASE0510SH
  17. 微信小程序开发工具npm用不了,报错“npm不是内部或外部命令,也不是可运行的程序”
  18. 专利申请流程及费用及时间?
  19. python显示磁共振图像(MRI)(pydicom)
  20. SpringBoot整合RibbitMQ

热门文章

  1. Python3.6学习笔记(四)
  2. ArcGIS,Envi软件中的卷帘工具使用及对比
  3. Android之底部Dialog里面放EditText点击布局顶上去效果
  4. 剑指offer之两个队列实现栈的问题
  5. C和指针之函数之递归实现厄密多项式
  6. C语言之如何输出uint32_t和uint64_t和16进制
  7. 《看聊天记录都学不会C语言?太菜了吧》(15)你学了一节课的函数我5分钟搞定了,还很熟
  8. 知乎超高赞:见识多的人,平时都在看些什么?
  9. 各个大学的录取通知书,哪个颜值最高?
  10. 20以内究竟包不包括20?