链表实现队列-Java
package MyQueue;
public class MyQueueLinked<Anytype> {
private int theSize;
private Node<Anytype> front;
private Node<Anytype> back;
class Node<Anytype> {
private Anytype data;
private Node<Anytype> next;
public Node(Anytype x, Node<Anytype> next) {
this.data = x;
this.next = next;
}
}
public int size() {
return theSize;
}
public boolean isEmpty() {
return theSize == 0;
}
public void enqueue(Anytype x) {
Node<Anytype> newNode = new Node<>(x, null);
if (size() == 0) {
front = newNode;
back = newNode;
} else {
back.next = newNode;
back = newNode;
}
theSize++;
}
public Anytype dequeue() {
if (size() == 0) {
throw new IndexOutOfBoundsException("empty");
}
Anytype item = front.data;
front = front.next;
theSize--;
return item;
}
}
测试
package MyQueue;
public class MyQueueLinkedTest {
public static void main(String[] args) {
MyQueueLinked<String> myqueue = new MyQueueLinked<String>();
myqueue.enqueue("a");
myqueue.enqueue("b");
myqueue.enqueue("c");
myqueue.enqueue("d");
myqueue.enqueue("e");
System.out.println(myqueue.dequeue());
System.out.println(myqueue.dequeue());
System.out.println(myqueue.dequeue());
System.out.println(myqueue.dequeue());
System.out.println(myqueue.dequeue());
}
}