/** * */ package dataStructures1112; import dataStructures1112.EmptyQueueException; import dataStructures1112.InvertibleQueue; import dataStructures1112.QueueInList; /** * @author rm.cruz * */ public class InvertibleQueueInList extends QueueInList implements InvertibleQueue { private static final long serialVersionUID = 1L; private boolean isInverted; public InvertibleQueueInList() { super(); isInverted = false; } @Override public void enqueue(E element) { if (isInverted) list.addFirst(element); else list.addLast(element); } @Override public E dequeue() throws EmptyQueueException { if (isInverted) return list.removeLast(); else return list.removeFirst(); } @Override public void invert() { isInverted = !isInverted; } }