package com.github.FelixCJF.coding2017.basic;
public class Queue {
private Node head;//头节点
private Node last;//尾节点
private int size;//记录节点
public void enQueue(Object o){
//设置一个节点变量存放原先的尾节点
final Node oldLast = last;
//创建一个新的节点
Node newNode = new Node();
newNode.data = o;
newNode.next = null;
//添加到队列
if (isEmpty()) {
head = newNode;
} else {
oldLast.next = newNode;
}
//新节点变为尾节点
last = newNode;
size ++;
}
public Object deQueue(){
Object object = head.data;
head = head.next;
if (isEmpty()) {
last = null;
}
size --;
return object;
}
public boolean isEmpty(){
return head == null;
}
public int size(){
return size;
}
private static class Node{
Object data;
Node next;
}
}