Java通过链表实现队列
class LinkedQueue<T> {/*** 队列大小,由构造函数初始化*/private int maxSize;/*** 队头*/private Node front = null;/*** 队尾*/private Node rear = null;/*** 队列实际元素个数*/private int nItems;/*** 初始化队列,并指定队列长度* * @param maxSize*/public LinkedQueue(int maxSize) {this.maxSize = maxSize;front = null;rear = null;this.nItems = 0;}/*** 讲一个数据放入队列* * @param data*/public void enqueue(T data) {Node node = new Node(data);if (isEmpty()) {front = node;front.next = null;rear = node;rear.pre = null;nItems++;return;}if (size() == 1) {rear = node;front.next = rear;rear.pre = front;nItems++;return;}if (isFull()) {System.out.print("超过队列已满,无法入队");return;}node.pre = rear;rear.next = node;rear = node;nItems++;}/*** 将数据出队* * @return*/public T dequeue() {Node temp = null;if (isEmpty()) {System.out.println("队列已空,无法出队");return null;}if (size() == 1) {temp = front;front = null;rear = null;nItems--;return temp.data;}if (size() == 2) {temp = front;front = rear;front.next = null;rear.pre = null;nItems--;return temp.data;}temp = front;front = front.next;nItems--;return temp.data;}/*** 判断队列是否为空* * @return*/public boolean isEmpty() {return nItems == 0;}/*** 判断队列是否已满* * @return*/public boolean isFull() {return nItems == maxSize;}/*** 获取队列的实际数据个数* * @return*/public int size() {return nItems;}/*** 将数据封装成节点* * @author John**/private class Node {T data;Node next;Node pre;public Node(T data) {this.data = data;}} }
转载于:https://www.cnblogs.com/SaraMoring/p/5794383.html
Java通过链表实现队列相关推荐
- 基于链表实现队列(基于Java实现)
title: 基于链表实现队列(基于Java实现) tags: 链表 队列 基于链表的队列实现方法的原理: 基于链表的实现,跟前面的基于数组实现一样,同样也需要两个指针:head指针和tail指针.它 ...
- 常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构)
常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构) 数据结构和算法作为程序员的基本功,一定得稳扎稳打的学习,我们常见的框架底层就是各类数据 ...
- 数据结构与算法:链表,队列,栈,递归,有序表
反转单链表,双链表 import java.util.ArrayList; import java.util.List;public class ReverseList {public static ...
- 聊聊并发(七)——Java中的阻塞队列
1. 什么是阻塞队列? 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列.这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空.当队列满时,存储元素的线程会等待队列可用 ...
- 用结点实现链表LinkedList,用数组和结点实现栈Stack,用数组和结点链表实现队列Queue
一,用结点实现链表LinkedList,不用换JavaAPI的集合框架 import java.util.Scanner;public class Main {public static class ...
- 黑马程序员 C语言数据结构与算法之线性表(链表/栈/队列/顺序表)
C语言 链表基础知识清晰讲解(黑马) 讲的蛮好,就是音质不太好,有时听不清讲的啥! [黑马]数据结构与算法之线性表(链表/栈/队列/顺序表)[配套源码 嘛蛋,看错了,这是java的... 文章目录 链 ...
- 转:Java 7 种阻塞队列详解
转自: Java 7 种阻塞队列详解 - 云+社区 - 腾讯云队列(Queue)是一种经常使用的集合.Queue 实际上是实现了一个先进先出(FIFO:First In First Out)的有序表. ...
- Java单链表、双端链表、有序链表实现
Java单链表.双端链表.有序链表实现 原创 2014年03月31日 23:45:35 标签: Java / 单链表 / 双端链表 / 有序链表 65040 单链表: insertFirst:在表头插 ...
- 20162316刘诚昊 用链表实现队列
20162316刘诚昊 2017-2018-2 <Java程序设计>用链表实现队列 实验要求 1 参考程序15.5给出方法deque,first,isEmpty,size,toString ...
最新文章
- 正式环境docker部署hyperf_应用部署 - Docker Swarm 集群搭建 - 《Hyperf v1.1.1 开发文档》 - 书栈网 · BookStack...
- python 类型之 set
- JAVA的WebService规范JAX-WS
- 你已经用上 5G 网络了吗?
- 新浪微博api(.net)时间格式问题
- codeforces 1073E
- IntelliJ IDEA 14 创建maven项目二
- linux命名管道进程间通信,《Linux 进程间通信》命名管道:FIFO
- 多线程常见问题(面试)
- 递归和迭代_斐波那契数列的实现:递归方式和迭代方式
- [React-Native]环境配置amp;HelloWorld
- 如何用php代码实现人脸识别,PHP实现人脸识别技术
- 第一台计算机英语怎么说,世界第一台计算机英文缩写名为
- 多包管理工具lerna搭建项目---基本常用命令
- Kali无线渗透加油破解无线
- 计算机二级ms模拟题在线,全国计算机二级MSoffice高级应用模拟试题及答案
- 笛卡尔树简介(分类到treap里面)
- Flowable No outgoing sequence flow of the exclusive gateway ‘xxx‘ could be selected for continuing
- JDK1.8下载安装配置
- QT中QPrinter打印功能