队列链式存储结构实现

package com.kiger.Link;/*** @ClassName LinkQueue* @Description 链式队列实现* @Author zk_kiger* @Date 2019/6/21 22:13* @Version 1.0*/public class LinkQueue<T> {private class Node {private T data;private Node next;public Node() {}public Node(T data, Node next) {this.data = data;this.next = next;}}private Node front;private Node rear;private int size = 0;public LinkQueue() {front = null;rear = null;}public LinkQueue(T element) {front = new Node(element, null);rear = front;size++;}// 获取元素个数public int length() {return size;}// 入队public void put(T element) {Node newNode = new Node(element, null);if(size == 0) {front = newNode;rear = front;} else {rear.next = newNode;rear = newNode;}size++;}// 出队public T remove() {Node delNode = null;if(size == 0) {throw new RuntimeException("队列为空");} else {delNode = front;front = delNode.next;delNode.next = null;}return delNode.data;}// 返回队首元素public T getFrontElemennt() {return front.data;}// 判断队列是否为空public boolean isEmpty() {return size == 0;}// 清空队列public void clear() {front = rear = null;size = 0;}@Overridepublic String toString() {if (isEmpty()) {return "[]";} else {StringBuilder sb = new StringBuilder("[");for (Node current = front; current != null; current = current.next) {sb.append(current.data.toString() + ", ");}int len = sb.length();return sb.delete(len - 2, len).append("]").toString();}}
}

测试代码

package com.kiger.Link;import org.junit.Test;/*** @ClassName LinkQueueTest* @Description TODO* @Author zk_kiger* @Date 2019/6/22 13:40* @Version 1.0*/public class LinkQueueTest {@Testpublic void test() {LinkQueue<String> queue = new LinkQueue<>();System.out.println("队列是否为空:"  + queue.isEmpty());queue.put("A");queue.put("B");queue.put("C");queue.put("D");System.out.println(queue);System.out.println("队首元素:" + queue.getFrontElemennt());System.out.println("队列长度:" + queue.length());System.out.println("移除队首:" + queue.remove());System.out.println(queue);System.out.println("清空队列");queue.clear();System.out.println(queue);System.out.println("队列是否为空:"  + queue.isEmpty());}
}

队列链式存储 - Java实现相关推荐

  1. Java实现队列 链式存储结构

    2019独角兽企业重金招聘Python工程师标准>>> 队列的链式存储结构 示例代码如下, package hash;/*** Created with IntelliJ IDEA. ...

  2. 线性表(单向)链式存储 - Java实现

    单向链式存储实现 package com.kiger.Link;/*** @ClassName LinkList* @Description 单向链表实现* @Author zk_kiger* @Da ...

  3. 线性表(双向)链式存储 - Java实现

    双向链式结构存储实现 package com.kiger.DeLink;/*** @ClassName DeLinkList* @Description 双向链表实现* @Author zk_kige ...

  4. 栈链式存储 - Java实现

    栈的连式存储结构实现 package com.kiger.Link;/*** @ClassName LinkStack* @Description TODO* @Author zk_kiger* @D ...

  5. 队列的链式存储结构及实现

    队列的链式存储结构,其实就是线性表的单链表,只不过它只是尾进头出而已,我们把它简称为链队列.为了操作上的方便,我们将队头指针指向链队列的头结点,而队尾指针指向终端节点.如果 空队列时,front和re ...

  6. 数据结构-队列2-链式存储

    队列链式存储方案一 seqList.h #include<stdlib.h> #include<stdio.h>struct SEQLINKNODE {struct SEQLI ...

  7. JAVA数据结构 线性表的链式存储及其实现

    2019独角兽企业重金招聘Python工程师标准>>> 2线性表的链式存储及其实现 虽然顺序表具有随机存取的特点是一种有用的存储结构但是也有缺陷: (1)      若需要给顺序表增 ...

  8. 数据结构(二):线性表包括顺序存储结构(顺序表、顺序队列和顺序栈)和链式存储结构(链表、链队列和链栈)...

    还记得数据结构这个经典的分类图吧: 今天主要关注一下线性表. 什么是线性表 线性表的划分是从数据的逻辑结构上进行的.线性指的是在数据的逻辑结构上是线性的.即在数据元素的非空有限集中 (1) 存在唯一的 ...

  9. 队列的定义与操作-顺序存储,链式存储(C语言)

    顺序存储: typedef int Position; struct QNode {ElementType *Data; /* 存储元素的数组 */Position Front, Rear; /* 队 ...

最新文章

  1. mysql create table()_MySQL Create Table创建表
  2. iOS:CALayer核心动画层
  3. winForm调用HTTP短信接口
  4. python编程快速入门例子-清华大学出版社-图书详情-《Python编程入门与案例详解》...
  5. 用结点实现链表LinkedList,用数组和结点实现栈Stack,用数组和结点链表实现队列Queue
  6. java uuid 效率_java uuid第一次性能
  7. 前端学习(3270):js中this的使用call bind
  8. Datedifff返回两个日期之间的天数
  9. 浙大PAT甲级1019. General Palindromic Number (20)
  10. 使用当前更改创建Git分支
  11. springboot整合junit_springBoot整合junit(笔记)
  12. 开发一个app需要多少钱、APP开发需要投入多少资金?
  13. 全球与中国膏体涂抹器市场深度研究分析报告
  14. 使用webgl(three.js)搭建3D智慧园区、3D大屏,3D楼宇,智慧灯杆三维展示,3D灯杆,web版3D,bim管理系统——第六课...
  15. 虚拟服务器黑屏怎么办,解决VMware 虚拟机开机黑屏的问题
  16. 2021地理高考成绩查询,安徽高考成绩查分时间2021
  17. C++学生信息管理系统(含文件流)部分心得含源码
  18. ondrive网盘php,IT之家学院:利用OneIndex + OneDrive搭建私人网盘(可对外公开) - IT之家...
  19. STP生成树详解_01
  20. 送给大家一个把阿拉伯数字与罗马数字互换的代码 -.- 仅支持4000以下的转化

热门文章

  1. android平板应用程序,分享Android平板电脑上开发应用程序不能全屏显示的问题解决...
  2. STM32 PWM波频率、占空比以及死区计算详细讲解
  3. 远程控制软件类别及使用
  4. Python打印星号图形系列(Python基础)
  5. Zigbee预备课程 - 新兵训练营(0)
  6. 关于安卓市场和微信市场
  7. 做了一个PC端图片阅读器,将它命名为「图阅」 | 初尝rust
  8. Ubuntu 16.04 MAC主题风格设置
  9. 【免费送书】离2019仅剩两月,你还有哪些梦想没完成?
  10. Flutter app打包详解