2019独角兽企业重金招聘Python工程师标准>>>

队列的链式存储结构

示例代码如下,

package hash;/*** Created with IntelliJ IDEA.* User: ASUS* Date: 14-9-17* Time: 上午11:58* To change this template use File | Settings | File Templates.*/
public class CustomLinkQueue<E> {//定义一个内部类Node,Node实例代表链队列的节点。private class Node {//保存节点的数据private E data;//指向下个节点的引用private Node next;//无参数的构造器public Node() {}//初始化节点的数据域private Node(E data) {this.data = data;}//初始化全部属性的构造器public Node(E data, Node next) {this.data = data;this.next = next;}}private Node front;  //头指针指向头结点private Node rear;   //尾节点private int count;   //该队列元素的数量/*** 初始化队列* 此时队列为空*/public CustomLinkQueue() {Node p = new Node();p.data = null;p.next = null;front = rear = p;}/*** 在队列的后端插入节点** @param item*/public void enqueue(E item) {Node newNode = new Node();newNode.data = item;newNode.next = null;      //入队的节点没有后继节点this.rear.next = newNode; //让原来的尾节点的后继节点指向新节点this.rear = newNode;      //rear指向最后一个节点count++;}/*** 出队* 在队列的前端删除节点** @return*/public E dequeue() throws Exception {if (isEmpty()) {throw new Exception("队列为空");} else {E obj;Node p = this.front.next;  //指向队头的第一个节点obj = p.data;this.front.next = p.next;if (rear == p) {rear = front;}count--;return obj;}}/*** @return*/public int size() {return count;}/*** 遍历算法* 移动front指针,直到front指针追上rear指针*/public void traverse() {for (Node current = front.next; current != null; current = current.next) {System.out.println(current.data);}}/*** 判断队列为空的条件是front == rear** @return*/public boolean isEmpty() {return front == rear;}public static void main(String args[]) throws Exception {CustomLinkQueue linkQueue = new CustomLinkQueue();for (int i = 0; i < 5; i++) {  //添加5个元素linkQueue.enqueue("lyx" + i);}System.out.println(linkQueue.size());System.out.println("===========traverse===========");linkQueue.traverse();System.out.println("==============================");linkQueue.dequeue();linkQueue.dequeue();System.out.println("===========traverse===========");linkQueue.traverse();System.out.println("==============================");System.out.println(linkQueue.size());}
}

====EN====

转载于:https://my.oschina.net/xinxingegeya/blog/314716

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

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

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

  2. 队列链式存储 - Java实现

    队列链式存储结构实现 package com.kiger.Link;/*** @ClassName LinkQueue* @Description 链式队列实现* @Author zk_kiger* ...

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

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

  4. 队列的链式存储结构及其实现_了解队列数据结构及其实现

    队列的链式存储结构及其实现 A queue is a collection of items whereby its operations work in a FIFO - First In Firs ...

  5. Python数据结构与算法基础|第五期:代码实现——循环队列的链式存储结构

    在上一次,我们通过取余等数学方法实现了顺序存储的循环队列.由于我们使用的是Python内置的列表类型作为底层,实际上我们的存储空间并不是首尾相连的.下面,我们使用链式存储结构来实现一个真正首尾相连的循 ...

  6. 队列的定义、循环队列的顺序存储结构及链式存储结构

    文章目录 1 队列的定义 1.1 文字定义 1.2 代码定义 2 循环队列 2.1 循环队列的定义 2.2 循环队列的顺序存储结构 3 队列的链式存储结构 3.1 链队列的入队操作 3.2 链队列的出 ...

  7. 队列的链式存储结构(链队)

    链队 1.队列的链式存储结构 typedef struct QNode{ //结点结构QElemType data; //结点数据域struct QNode *next; //结点指针域 }QNode ...

  8. 线性表之顺序存储结构与链式存储结构 及 应用

    前言 我们常用的线性表是顺序存储结构和链式存储结构表示,是最基本.最简单.也是最常用的一种数据结构:一个线性表是由n个相同特性的数据的有限序列:比如java中的数组 ,链表:所以学习这两种结构表示是非 ...

  9. 链表list(链式存储结构实现)_VOL.2 如何在python中实现链式存储结构

    一.前言 链式存储作为一种重要的数据存储方式有着极强的数据组织能力.灵活型和动态性,在众多数据结构中应用非常广泛.所谓链式存储结构,就是采用分散的存储空间分别存储每一组数据再通过地址链接的形式将全部数 ...

最新文章

  1. 免费版CloudFlare CDN基本设置参考
  2. 2018-2019-2 网络对抗技术 20165230 Exp9 :Web安全基础
  3. Get Started with Visualforce
  4. oracle分组汇总人数,Oracle实现分组统计记录
  5. linux改变文件夹权限吗,linux改变文件/文件夹权限
  6. GO语言基础之method
  7. sort+参数+linux,linux sort下令参数及用法详解
  8. simplexml和xpath
  9. C# 9 新特性——init only setter
  10. 51nod 1237 最大公约数之和 V3
  11. 【经验】lingo / lindo报错:invalid syntax
  12. 单片机控制可控硅调压
  13. U盘中毒文件被隐藏?U盘中毒了怎么恢复文件
  14. python电话簿_python 联系簿
  15. 博科查看光功率_易天教大家如何检测SFP光模块的光信号强弱
  16. ipa文件怎么安装到iPhone iPhone怎么安装ipa
  17. 网红茶饮难逃“短命”之殇,喜茶能否打破这个魔咒?
  18. 蛙蛙推荐:一个程序员2012年技术学习总结 - 蛙蛙王子 - 博客园
  19. java-IO流-在文件中数据内容的插入问题
  20. 获取不带后缀名的Excel文件名Python

热门文章

  1. Docker安装(Mac)
  2. Received status code 403 from server: ForbiddenDisable Gradle ‘offline mode‘ and sync project
  3. 2020-11-05 关于前端‘古董‘dojo的树结构如何默认展开根节点
  4. Nvidia的CUDA库现在恢复使用了
  5. 网页截图工具CutyCapt
  6. ​网页图表Highcharts实践教程之图表代码构成
  7. Hierarchy视图里的Transform和Camera组件
  8. OUYA游戏开发快速入门教程1.2OUYA的硬件规格
  9. 函数在机器底层是如何实现的_智能货柜专题三:如何实现不同机器“千机千面”?...
  10. python消找出img中的src标签_使用beautifulsoup从img标签获取src