`

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();
}

 }

 

分享到:
评论

相关推荐

    C#使用foreach语句遍历队列(Queue)的方法

    在`Queue`中,`GetEnumerator`返回一个`QueueEnumerator`对象,这个对象实现了`IEnumerator`接口,允许我们按顺序访问队列中的元素。 需要注意的是,`Queue`中的元素是按照它们被添加的顺序访问的,即`foreach`会从...

    图的深度和广度遍历(Java实现)

    了解了DFS和BFS的基本概念及Java实现后,你可以进一步研究如何优化这些算法,如使用迭代而不是递归来减少栈溢出的风险,或者结合其他数据结构和算法来解决更复杂的图问题。实践是检验理论的最好方式,尝试自己动手...

    Java实现图的深度优先遍历和广度优先遍历

    在IT领域,图数据结构是计算机科学中的一个关键概念,用于表示对象之间的关系。...在Java中,通过适当的递归或迭代算法结合数据结构(如栈或队列),我们可以有效地实现这两种遍历方法,从而在各种图形应用中解决问题。

    优先队列-java可以选择属性和升序降序

    虽然优先队列不是线程安全的,但你可以使用迭代器安全地遍历队列中的元素: ```java Iterator&lt;Integer&gt; iterator = queue.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } ...

    Java实现二叉树的先序、中序、后续、层次遍历

    在讲解Java实现二叉树的先序、中序、后序、层次遍历时,我们需要先了解几个关键知识点。 首先,二叉树是一种非常基础且重要的数据结构,每个节点最多有两棵子树,通常称这两棵子树为“左子树”和“右子树”。二叉树...

    二叉树的 实现 插入遍历

    在二叉树的遍历中,有三种主要的方法:先序遍历、中序遍历和后序遍历,这些遍历方法在计算机科学中广泛应用,特别是在数据结构、算法和编译器设计等领域。 1. 先序遍历:遵循【根左右】的顺序,即首先访问根节点,...

    数据结构JAVA实现

    在这个名为“数据结构JAVA实现”的压缩包中,我们可以看到作者提供了三种重要的数据结构——链表、有序二叉树和队列的Java代码实现。 首先,让我们详细探讨链表。链表是一种线性数据结构,与数组不同,它不连续存储...

    广度遍历目录的代码

    在代码实现中,可能会用到Java的`java.io.File`类来操作文件和目录,`java.util.Queue`接口来实现队列,以及`java.util.concurrent`包中的线程和并发工具类。Python中可以使用`os`和`queue`模块,或者其他编程语言也...

    Java容器类接口框架总览1

    本文将深入探讨Java中的Collection接口及其子接口,包括List、Queue、Deque、Map以及Set接口,同时也会介绍迭代器的相关概念。 1. **Collection接口** Collection是Java集合框架的顶级接口,它是Queue、List和Set...

    Java编程代码,包括各种接口的代码实现,很有用的东软的资料

    `QueueDemo.java`可能是对队列数据结构的实现,Java的`java.util.Queue`接口提供了FIFO(先进先出)操作。常见的队列实现有`LinkedList`和`ArrayDeque`等。 `TestLinkedlist.java`很可能是对`LinkedList`类的测试,...

    双端队列C++实现 双端队列C++实现

    8. **迭代器支持**:为了符合STL标准,双端队列应提供迭代器接口,包括begin()、end()、rbegin()、rend()等,用于遍历队列。 下面是一个简化的C++实现框架: ```cpp template class Deque { private: T* data; /...

    java-leetcode题解之第103题二叉树的锯齿形层序遍历.zip

    **Java实现**: 在Java中,解决这个问题通常需要使用队列(Queue)来存储当前层的节点,同时使用一个布尔值变量来控制当前层的遍历方向。以下是一个基本的实现步骤: 1. 初始化一个队列,将根节点放入队列。 2. ...

    基于Python的多叉树遍历算法.zip

    1. 前序遍历:Python可以通过递归或迭代(使用队列)来实现。递归方法直观但可能会导致栈溢出,而迭代方法更为稳定且适用于大型树。 ```python def pre_order_traversal(node): if node is not None: print(node....

    栈、队列以及二叉树的实现

    递归方法直观且易于理解,而迭代方法(如使用栈实现先序遍历,使用队列实现层序遍历)则更高效且避免了递归带来的栈溢出问题。 在提供的压缩包文件中,"Tree"可能包含了实现这些数据结构及其遍历算法的代码示例。...

    java一亿数字取前100个(3秒钟获取)

    1. **优先队列(Priority Queue)**:Java中的`java.util.PriorityQueue`是一个无界优先队列,基于二叉堆实现。它支持O(log n)时间复杂度的插入和删除操作,是解决此类问题的理想选择。我们可以将队列设置为大小为...

    DuiLie.rar_java 队列

    打印队列的所有元素通常通过迭代LinkedList进行,从`front`到`rear`遍历所有节点,并输出每个节点的值。可以使用`Iterator`或增强型for循环来实现这个功能。 8. **代码实现**: 创建一个基于LinkedList的队列类,...

    二叉树遍历广度优先

    广度优先遍历通常使用队列(Queue)数据结构来实现。步骤如下: 1. 将根节点放入队列。 2. 当队列不为空时,执行以下操作: a. 取出队列中的第一个节点。 b. 访问该节点。 c. 将该节点的左子节点(如果存在)放...

    Java集合框架Collection接口.pdf

    - `Collection`接口支持多种集合类型,如列表(List)、集合(Set)、队列(Queue)等。 - **应用场景**: - 当需要存储一组对象时,但不关心具体的存储结构时,可以选择使用`Collection`接口。 - 在需要进行...

    Java-collection-frame.rar_Java集合框架

    Iterable是所有可迭代集合的超接口,通过for-each循环实现元素遍历。 8. Stream API:Java 8引入了Stream API,提供了一种声明式编程风格,用于处理集合和I/O流。它支持并行处理,能更高效地处理大量数据。 9. ...

    java-数据结构代码实现

    8. **排序算法**:包括冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等,这些排序算法的Java实现可以帮助你理解它们的工作原理和效率。 9. **查找算法**:如二分查找、哈希查找等,这些算法在处理大...

Global site tag (gtag.js) - Google Analytics