package queue;
public class QueueLinkDemo<T> {
private Node front = null;
private Node rear = null;
private int size = 0;
public boolean enqueue(T data){
Node node = new Node();
node.data = data;
if(front == null && rear == null){
front = node;
rear = front;
}else{
rear.next = node;
rear = rear.next;
}
size++;
return true;
}
public T dequeue(){
if(front == null){
return null;
}
if(front == rear && rear != null){
Node node = front;
front = null;
rear = null;
return node.data;
}
Node node = front;
front = front.next;
size --;
return node.data;
}
private final class Node{
Node next;
T data;
}
}
public class QueueLinkDemo<T> {
private Node front = null;
private Node rear = null;
private int size = 0;
public boolean enqueue(T data){
Node node = new Node();
node.data = data;
if(front == null && rear == null){
front = node;
rear = front;
}else{
rear.next = node;
rear = rear.next;
}
size++;
return true;
}
public T dequeue(){
if(front == null){
return null;
}
if(front == rear && rear != null){
Node node = front;
front = null;
rear = null;
return node.data;
}
Node node = front;
front = front.next;
size --;
return node.data;
}
private final class Node{
Node next;
T data;
}
}