Node
package com.qyc.Queue;
public class Node<E> {
Node<E> next = null;
E date;
public Node(E date) {
// TODO 自动生成的构造函数存根
this.date = date;
}
}
MyQueue
package com.qyc.Queue;
public class MyQueue<E> {
public Node<E> head = null;
public Node<E> tail = null;
public boolean isEmpty() {
return head == tail;
}
public void put(E data) {
Node<E> newNode = new Node<E>(data);
if (head == null && tail == null) {
head = tail = newNode;
} else {
tail.next = newNode;
tail = newNode;
}
}
public E pop() {
if (this.isEmpty()) {
return null;
}
E data = head.date;
head = head.next;
return data;
}
public int size() {
Node<E> node = head;
int i = 0;
while (node != null) {
i++;
node = node.next;
}
return i;
}
}
Test
package com.qyc.Queue;
import java.awt.geom.QuadCurve2D;
public class TestQueue {
public static void main(String[] args) {
MyQueue<Integer> myQueue = new MyQueue<>();
myQueue.put(1);
myQueue.put(2);
myQueue.put(3);
myQueue.put(4);
System.out.println(myQueue.size());
myQueue.pop();
System.out.println("对头:"+myQueue.head.date+"\n"+"对尾:"+myQueue.tail.date);
}
}
4
对头:2
对尾:4