原理:队列是先进先出的数据结构,底层可以使用链表或数组实现
代码:
package com.chenqing.test.linearList.queue;
import java.util.Iterator;
public class Realization <T> implements Iterable<T>{
private Node head;
private Node tail;
private int n;
public Realization() {
this.head = new Node(null, null);
this.tail = null;
this.n = 0;
}
public boolean isEmpty(){
return this.n == 0;
}
public int size(){
return this.n;
}
public void enqueue(T obj){
Node newNode = new Node(obj, null);
if(isEmpty()){
this.head.next = newNode;
this.tail = newNode;
}else{
Node oldTail = this.tail;
oldTail.next = newNode;
this.tail = newNode;
}
this.n++;
}
public T dequeue(){
if(isEmpty()){
return null;
}else{
Node oldHead = this.head.next;
this.head.next = oldHead.next;
this.n--;
return oldHead.data;
}
}
@Override
public Iterator<T> iterator() {
return new MyselfIterator();
}
private class MyselfIterator implements Iterator<T>{
private Node n;
public MyselfIterator() {
this.n = head;
}
@Override
public boolean hasNext() {
return n.next != null;
}
@Override
public T next() {
n = n.next;
return n.data;
}
}
private class Node{
private T data;
private Node next;
public Node(T data, Node next) {
this.data = data;
this.next = next;
}
}
}