Java实现队列(循环队列,链队列)
循环队列:
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实现队列(循环队列,链队列)相关推荐
- java先进先出 循环队列_java队列--先进先出(循环队列、链队列)
队列:只允许在一端进行插入操作(队尾),在另一端进行删除操作(队头). 队列的特征就是: 先进先出. 队列的思想及实现也同样非常简单.在生活中的各种常常都需要排队进行,键盘中缓存区.操作系统中的作业调 ...
- 【数据结构与算法】循环队列和链队列的比较
前言 本文原本是一篇随感+笔记,被翻出来后就整理发了博客. 不曾想能上搜索头条,既如此,决定更新一下,加上必要的阐释,避免影响有需求的读者. (我这么理解大家,如果有需要的话,是不是可以考虑点个赞或者 ...
- Java数组实现循环队列
Java数组实现循环队列 上一节(Java实现队列--顺序队列.链式队列)我们使用数组实现了顺序队列,但是在tail == n时会有数据搬移操作,这样入队操作性能就会受到影响.这里我们使用循环队列的解 ...
- c语言循环队列入列算法,C语言——循环队列和链队列的基本运算
// 循环队列 #include #include "SeqQue.h" // 循环队列的基本运算 /* const int maxsize = 20; typedef struc ...
- 数据结构与算法(3-2)队列(顺序队列、循环队列与链队列)
目录 一.顺序队列 1.存储结构 2.入队和出队 总代码 二.循环队列 总代码: 三.链队列 1.存储结构 2.入队和出队 总代码 一.顺序队列 队列特征:先进后出.后进后出. 1.存储结构 //队列 ...
- 【笔记 】栈底层 循环队列的处理 链栈 链队列
栈 队列 解决"假溢出"问题的方法: 采用循环队列方式:将数组的头尾看作是相邻的元素, 即将元素data[0]看作是data[maxlen-1]的下一个元素.如图所示. 因此,插入 ...
- 顺序队列,循环队列,链队列
队列 先看队列接口和结点类 1. 顺序队列 2. 循环队列 3. 链队列 先看队列接口和结点类 package com.lovely.queue;/** * 2020年4月26日下午2:42:44* ...
- java循环队列_Java版-数据结构-队列(循环队列)
前情回顾 在上一篇,笔者给大家介绍了数组队列,并且在文末提出了数组队列实现上的劣势,以及带来的性能问题(因为数组队列,在出队的时候,我们往往要将数组中的元素往前挪动一个位置,这个动作的时间复杂度O(n ...
- 【数据结构】队列(链队列、循环队列)的存储结构及基本运算(C语言)
目录 1. 队列基本概念 2. 链队列 2.1 代码+注释 2.2 运行结果 3. 循环队列 3.1 代码+注释 3.2 运行结果 1. 队列基本概念 队列(Queue)是一种限定性线性表,它只允许在 ...
最新文章
- Vmware虚拟机的复制后无法使用的问题和解决
- Java知识系统回顾整理01基础04操作符07Scanner
- python入门指南 小说-Python 入门指南
- 全方面了解和学习PHP框架 PHP培训教程
- javascript中的命名规则和方法
- 阿里云ECS服务器CentOS7上用户管理操作
- MOSS2010中如何用代码给托管元数据类型的栏目赋值
- Acwing 1243 糖果 - IDA*估值函数
- spark 稀疏矩阵存储详细解读
- 腾讯云短信封装(v3版本)
- 自制汉字字库,识别汉字(三)(汉字篇)
- Java web项目中获取WebRoot目录下的文件
- Ultrasound Open Platforms for Next-Generation Imaging Technique Development
- macOS hashcat 安装
- cx oracle 连接编码,python用cx_Oracle连接oracle编码问题解决办法
- ASE0510SH-ASEMI的MOS管ASE0510SH
- 微信小程序开发工具npm用不了,报错“npm不是内部或外部命令,也不是可运行的程序”
- 专利申请流程及费用及时间?
- python显示磁共振图像(MRI)(pydicom)
- SpringBoot整合RibbitMQ