package com.coding.basic; public class Queue { private Node first; private Node last; private int size = 0; public void enQueue(Object o){ if(null == first){ Node node = new Node(); node.data = o; node.next = null; first = node; last = node; }else{ Node node = new Node(); node.data = o; node.next = null; last.next = node; last = node; } size++; } public Object deQueue(){ Node second = first.next; Object o = first.data; if(null != second){ first = second; return o; }else{ first = null; size = 0; return o; } } public boolean isEmpty(){ if(size > 0){ return false; }else{ return true; } } public int size(){ return size; } static class Node{ Node next; Object data; } @Override public String toString() { StringBuilder sb = new StringBuilder(); if(null != first){ sb.append(first.data.toString() + ","); Node node = first.next; sb.append(node.data.toString() + ","); while(null != node.next){ node = node.next; sb.append(node.data.toString() + ","); } } return sb.toString(); } }