java 数据结构队列的代码实现,可以简单的进行入队列和出队列的操作

/**
* java数据结构之队列的实现
* 2016/4/27
**/
package cn.Link;
import java.util.*; public class Queue{
Node tail = new Node();
Node nowNode = new Node(); //永远指向队首
int size;
Queue(){};
Queue(String date){
this.tail.date = date;
this.tail.next = null;
this.nowNode.next = this.tail;
this.size = 1;
System.out.println("队列已经被建立,"+date+"被加入到队列中");
} //节点类
class Node{
String date;
Node next;
Node(){};
Node(String date){
this.date = date;
}
} //向队列中插入数据
public void EnQueue(String date){
Node preNode = new Node(date);
preNode.next = this.nowNode.next;
this.nowNode.next = preNode;
this.size++;
System.out.println("数据"+date+"被加入到队列中");
} //出队列操作
public void DeQueue(){
Node preNode = new Node();
preNode.next = this.nowNode.next;
while(true){
if(preNode.next.next != this.tail){
preNode.next = preNode.next.next;
}else{
preNode.next.next = null;
this.tail = preNode.next;
System.out.println("出队列完成~~~"); break;
}
}
this.size--;
} //遍历队列输出
public void PrintQueue(){
Node preNode = new Node();
preNode.next = this.nowNode.next;
System.out.print("遍历输出队列: ");
while(preNode.next != null){
System.out.print(" -->"+preNode.next.date);
preNode.next = preNode.next.next;
}
System.out.println("+++++++++++当前队列的长度为"+this.size);
} //清空队列
public void clear(){
this.nowNode.next = null;
this.tail = null;
this.size = 0;
System.out.println("队列已被清空"); } public static void main(String[] args){
Queue queue = new Queue("sum1");
queue.EnQueue("sum2");
queue.EnQueue("sum3");
queue.EnQueue("sum4");
queue.EnQueue("sum5");
queue.EnQueue("sum6");
queue.EnQueue("sum7");
queue.EnQueue("sum8");
queue.PrintQueue();
queue.DeQueue();
queue.DeQueue();
queue.PrintQueue();
}
}

java 数据结构 队列的实现的更多相关文章

  1. java数据结构——队列、循环队列(Queue)

    每天进步一点点,坚持就是成功. 1.队列 /** * 人无完人,如有bug,还请斧正 * 继续学习Java数据结构————队列(列队) * 队列和栈一样,都是使用数组,但是队列多了一个队头,队头访问数 ...

  2. java数据结构----队列,优先级队列

    1.队列:和栈中的情况不同,队列中的数据项不总是从数组下标0开始,移除一个数据项后,队头指针会指向下标较高的数据项,其特点:先入先出 2.图解 3.队列的实现代码: 3.1.Queue.java pa ...

  3. Java数据结构——队列

    //================================================= // File Name : Queue_demo //-------------------- ...

  4. Java数据结构和算法(四)赫夫曼树

    Java数据结构和算法(四)赫夫曼树 数据结构与算法目录(https://www.cnblogs.com/binarylei/p/10115867.html) 赫夫曼树又称为最优二叉树,赫夫曼树的一个 ...

  5. Java数据结构之队列的实现以及队列的应用之----简单生产者消费者应用

    Java数据结构之---Queue队列 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在 ...

  6. Java数据结构和算法 - 栈和队列

    Q: 栈.队列与数组的区别? A: 本篇主要涉及三种数据存储类型:栈.队列和优先级队列,它与数组主要有如下三个区别: A: (一)程序员工具 数组和其他的结构(栈.队列.链表.树等等)都适用于数据库应 ...

  7. Java数据结构和算法(五)——队列

    队列.queue,就是现实生活中的排队. 1.简单队列: public class Queqe { private int array[]; private int front; private in ...

  8. 数据结构与算法Java描述 队列

    package com.cjm.queue; /** * 数据结构与算法Java实现 队列 * * @author 小明 * */ public class Myqueue { private Nod ...

  9. Java数据结构和算法(二)--队列

    上一篇文章写了栈的相关知识,而本文会讲一下队列 队列是一种特殊的线性表,在尾部插入(入队Enqueue),从头部删除(出队Dequeue),和栈的特性相反,存取数据特点是:FIFO Java中queu ...

随机推荐

  1. #if defined和#if !defined(c语言的宏定义)

    我们要检查a是否定义 #if defined a #undef a #define a 200 #endif 上述语句检验a是否被定义,如果被定义,则用#undef语句解除定义,并重新定义a为200 ...

  2. hellobruce

  3. table可更改th大小的jQuery插件

    (function ($) { $.fn.resizetable = function () { var tableObj = $(this); var inResizeRange = false; ...

  4. 获取当前设备的IP地址

    头文件: #import <ifaddrs.h> #import <arpa/inet.h> #import <net/if.h> 宏定义: #define IOS ...

  5. Mybatis批量更新数据

    转载:http://blog.csdn.net/tolcf/article/details/39213217 第一种方式 <update id="updateBatch" p ...

  6. UVALive - 3026 Period kmp next数组的应用

    input n 2<=n<=1000000 长度为n的字符串,只含小写字母 output Test case #cas 长度为i时的最小循环串 循环次数(>1) 若没有则不输出 做法 ...

  7. php 链接 sqlserver 2005以上版本数据库

    <?php /** * 数据库管理 * * @author wangaibo168@163.com * @charset utf-8 * 不支持sqlserver2005(包括)以下的版本 */ ...

  8. sql 将表B中不存在表A的数据 插入到表A中

    insert into tableA select * from tableB b where not exists(select 1 from tableA a where a.id = b.id) ...

  9. Windows常用的监视数据指标

  10. glusterfs——volume管理

    Q: 常用的命令有哪些? 创建volume: gluster volume create NAME stripe SCOUNT replica RCOUNT transport TYPE  BRICK ...