`

java实现迭代遍历接口的队列(Queue)

 
阅读更多
public class Queue<Item> implements Iterable<Item>{
private Node first;
private Node last;
private int N;
private class Node{
    Item item;
    Node next;
}
public boolean isEmpty(){ return first == null;}
public int size(){ return N;}
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(){
    Item item = first.item;
    first = first.next;
    if( isEmpty())
        last = null;
    N--;
    return item;
}
public class AIterator<Item> implements Iterator<Item>{
    private Node ifirst=first;
    @Override
    public boolean hasNext() {
        return ifirst==null;
    }
    @Override
    public Item next() {
        Item item = ifirst.item;
        Node first = ifirst.next;
        return item;
    }

    @Override
    public void remove() {
    }
}
@Override
public Iterator<Item> iterator() {
    return new AIterator();
}

 }

 

分享到:
评论

相关推荐

    Java并发编程(学习笔记).xmind

    线程安全的对象在其内部实现同步,因此多个接口可以通过公有接口来进行访问 保护对象:被保护的对象只能通过特定的锁来访问 将对象封装到线程安全对象中 由特定锁保护 保护对象的方法 对象的...

    颜色分类leetcode-Python_Data_Structures:在Python中实现不同的数据结构或算法,包括ADT、哈希表、链表、排

    颜色分类leetcode Python 数据结构 包含 Lorem_ipsum.txt 用于测试和计时目的。 目前用于测试 ...递归(从迭代方法继承,重新实现插入、查找、删除、DFS、findMin、findMax) 单元测试来测试两种类型的每个操作

    传智播客扫地僧视频讲义源码

    18_配置文件读写案例_写和修改接口实现 19_文件加密案例_思路分析 20_文件加密案例_文件搬运实现 21_文件加密案例_文件加密功能集成 22_文件加密案例_文件加密实现 23_作业 24_学员二级指针代码bug调试_传智扫地僧 ...

    leetcode添加元素使和等于-leetcode-new:leetcode-new

    leetcode添加元素使和等于 LeetCode Solutions This is my solutions for LeetCode. Arrays 旋转数组,三次旋转。...合并区间,先实现 comparator,进行排序,之后判断重复区间进行合并。...queue,poll()

    欧拉公式求圆周率的matlab代码-PHP-Data-Structure-and-Algorithms:使用PHP实现不同数据结构和算法实现的

    树遍历(有序,有序,有序) 特里(简单的插入和搜索操作) 堆 最小堆 最大堆 图形 BFS 贝尔曼福特算法 DFS 迪克斯特拉 弗洛伊德·沃霍尔 克鲁萨尔 基本最小生成树 拓扑排序 排序 气泡排序 气泡排序有改进 斗类 堆...

    C++进阶课程讲义_v1.0.4.pdf

    10.2.7优先级队列priority_queue 110 10.2.8Set和multiset容器 111 10.2.9Map和multimap容器 118 10.2.10容器共性机制研究 123 10.2.11其他 124 10.3算法 125 10.3.1算法基础 125 10.3.2STL算法中函数对象和谓词 138...

    Python Cookbook

    9.3 将Queue.Queue用作优先级队列 344 9.4 使用线程池 346 9.5 以多组参数并行执行函数 349 9.6 用简单的消息传递协调线程 351 9.7 储存线程信息 353 9.8 无线程的多任务协作 357 9.9 在Windows中探测另一个...

    C++ Primer第四版【中文高清扫描版】.pdf

    10.3.8 map对象的迭代遍历 316 10.3.9 “单词转换”map对象 317 10.4 set类型 319 10.4.1 set容器的定义和使用 319 10.4.2 创建“单词排除”集 321 10.5 multimap和multiset类型 322 10.5.1 元素的添加和删除 322 ...

    algorithms-and-data-structures-study:借助Javascript对算法和数据结构进行深入研究

    其目的是为客户提供收集项目然后进行遍历的能力。 迭代的顺序是不确定的,对客户端来说应该无关紧要。 FIFO队列是基于先进先出(FIFO)策略的集合。 因此,这意味着我们使用它以任务到达的顺序来执行任务。 下推式...

    jQuery详细教程

    jQuery详细教程,讲解很透彻, 一. jQuery 语法实例 $(this).hide() ... $("#test").hide() 演示 jQuery hide() 函数,隐藏 id="test" 的元素。 $("p").hide() 演示 jQuery hide() 函数,隐藏所有 &lt;p&gt; 元素。...

Global site tag (gtag.js) - Google Analytics