博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java实现Queue类
阅读量:5301 次
发布时间:2019-06-14

本文共 1958 字,大约阅读时间需要 6 分钟。

Java实现Queue类

import java.util.Iterator;import java.util.NoSuchElementException;import java.util.Scanner;public class Queue
implements Iterable
{ private int N; private Node
first; private Node
last; private static class Node
{ private Item item; private Node
next; } public Queue() { first = null; last = null; N = 0; } public boolean isEmpty() { return first == null; } public int size() { return N; } public Item peek() { if(isEmpty()) throw new NoSuchElementException("Queue underflow"); return first.item; } public void enqueue(Item item) { Node
oldlast = last; last = new Node
(); last.item = item; last.next = null; if(isEmpty()) first = last; else oldlast.next = last; N ++; } public Item dequeue() { if(isEmpty()) throw new NoSuchElementException("Queue underflow"); Item item = first.item; first = first.next; N --; if(isEmpty()) last = null; return item; } public String toString() { StringBuilder s = new StringBuilder(); for(Item item : this) s.append(item + " "); return s.toString(); } public Iterator
iterator() { return new ListIterator
(first); } private class ListIterator
implements Iterator
{ private Node
current; public ListIterator(Node
first) { current = first; } public boolean hasNext() { return current != null; } public void remove() { throw new UnsupportedOperationException(); } public Item next() { if(!hasNext()) throw new NoSuchElementException(); Item item = current.item; current = current.next; return item; } } public static void main(String[] args) { Queue
q = new Queue
(); Scanner in = new Scanner(System.in); while(in.hasNext()) { String item = in.next(); if(!item.equals("-")) q.enqueue(item); else if(!q.isEmpty()) System.out.println(q.dequeue()); System.out.println("(" + q.size() + " left on queue)"); } }}

 

转载于:https://www.cnblogs.com/wuyouwulv/p/java_queue.html

你可能感兴趣的文章
62. Unique Paths (DP)
查看>>
windows下hadoop伪分布式模式开发环境的搭建(Cygwin)以及Eclipse集成开发环境下的搭建...
查看>>
简单视频播放软件设计
查看>>
2019.1.22 工作日志
查看>>
Spring-AOP基础
查看>>
九度oj 题目1499:项目安排
查看>>
内置函数
查看>>
深度剖析collections模块
查看>>
BZOJ_1018_[SHOI2008]_交通堵塞traffic_(线段树)
查看>>
PyCharm Change Font Size
查看>>
理解Python中的__init__和__new__
查看>>
None.js 第六步 Stream(流)
查看>>
ajax:error:function (XMLHttpRequest, textStatus, errorThrown) 中status、readyState和textStatus状态意义...
查看>>
Day4 数据类型
查看>>
【转】Nicescroll滚动条插件的用法
查看>>
Redis复制与可扩展集群搭建(转)
查看>>
软件工程概论第六章--面向对象基础
查看>>
网络传输方式的分类
查看>>
MySQL 字段基本操作
查看>>
Ftp客户端需要TSL功能的文件上传
查看>>