package com.interview.basics.model.collection.queue;
import com.interview.basics.model.collection.list.Node;
/**
* Created_By: stefanie
* Date: 14-7-13
* Time: 下午10:01
*/
public class LinkedQueue<T> implements Queue<T> {
Node<T> head;
Node<T> tail;
int size;
@Override
public void push(T item) {
Node<T> node = new Node<T>(item);
if(head == null || tail == null){
tail = node;
head = tail;
} else {
tail.next = node;
tail = node;
}
size++;
}
@Override
public T pop() {
if(this.head != null){
T node = this.head.item;
this.head = this.head.next;
this.size --;
return node;
} else {
return null;
}
}
@Override
public boolean isEmpty() {
return this.head == null;
}
@Override
public int size() {
return this.size;
}
@Override
public T peek() {
return this.head == null ? null : this.head.item;
}
}