package 数据结构
.Queue
;
import java
.util
.Iterator
;
public class QueueNode<Item> implements Iterable {
private class Node{
Item item
;
Node next
;
}
Node first
;
Node last
;
int N
=0;
public int size(){
return N
;
}
public boolean isEmpty(){
return N
==0;
}
public void enqueue(Item item
){
Node oldfirst
=last
;
last
=new Node();
last
.item
=item
;
last
.next
=null
;
if (isEmpty()) {
first
=last
;
} else{
oldfirst
.next
=last
;
}
N
++;
}
public Item
dequeue(){
Item item
=first
.item
;
first
=first
.next
;
if (isEmpty())last
=null
;
N
--;
return item
;
}
@Override
public Iterator
iterator() {
return new QueueNodeIterator();
}
private class QueueNodeIterator<Item> implements Iterator<Item> {
Node temp
=first
;
int j
=N
;
@Override
public boolean hasNext() {
return j
>0;
}
@Override
public Item
next() {
Item item
=(Item
) temp
.item
;
temp
= temp
.next
;
j
--;
return item
;
}
@Override
public void remove() {
}
}
}
转载请注明原文地址: https://win8.8miu.com/read-700351.html