package com.sanmubird.basicDataStructure; public class Queue { /* 采用数组的方式实现队列 * 队列的特点是:先进先出,只能从尾进,(不能插队);只能从头出; private Object[] queArray ; //队列 private int maxSize ; //队列 长度; private int front ; //队头,允许删除 private int rear ; //队尾;允许插入 public Queue(int initialSize){ if(initialSize > 0){ this.queArray = new Object[initialSize]; this.maxSize = initialSize; this.front = this.rear = 0 ; }else{ throw new RuntimeException("初始化的大小不能小于0;"+ initialSize); } } public void enQueue(Object o){ if(rear == maxSize){ throw new RuntimeException("队列已满,无法插入新的元素!"); }else{ queArray[rear++] = o ; } } public Object deQueue(){ if(isEmpty()){ throw new RuntimeException("空队列异常!"); }else{ Object obj = (Object) queArray[front]; queArray[front++] = null; return obj; } } //判空 public boolean isEmpty(){ return rear == front?true:false; } public int size(){ return rear-front; } */ /** 采用链表实现对队列;队列的特点是:先进先出,而且不能插队;所以只能从尾进,从头出。 * * */ private LinkedList ll ; public Queue(){ this.ll = new LinkedList(); } public void enQueue(Object o){ ll.addLast(o); } public Object deQueue(){ return ll.removeLast(); } public boolean isEmpty(){ return ll.getHead().next == null ? true: false; } public int size(){ return ll.size(); } }