队列的实现
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
队列的特性:先进先出;
以下代码是用链表实现的队列:
1.队列的接口
1 public interface IQueue<T> { 2 //入队操作 3 void enQueue(T e); 4 //出队操作 5 T deQueue(); 6 //返回队列的大小 7 int getSize(); 8 //判断队列是否为空 9 boolean isEmpty(); 10 //查看队首元素 11 T peek(); 12 }
2.队列类
1 import java.util.EmptyStackException; 2 import java.util.LinkedList; 3 4 public class MyQueue<T> extends LinkedList<T> implements IQueue<T> { 5 6 @Override 7 public void enQueue(T e) { 8 super.add(e); 9 10 } 11 12 @Override 13 public T deQueue() { 14 if(getSize()<=0) throw new EmptyStackException(); 15 T value=super.getFirst(); 16 super.removeFirst(); 17 return value; 18 } 19 20 @Override 21 public boolean isEmpty() { 22 return getSize()>0; 23 } 24 25 @Override 26 public T peek() { 27 if(getSize()<=0) throw new EmptyStackException(); 28 T value=super.getFirst(); 29 return value; 30 } 31 32 @Override 33 public int getSize() { 34 return super.size(); 35 } 36 37 }