📄 onetimequeue.java
字号:
package edu.odu.cs.zeil.AlgAE.Server;import edu.odu.cs.zeil.AlgAE.Server.TimeStamped;/** * A queue of time-stamped objects, used to provide queue-like * behavior with the provision that any object currently or * previously in the queue, cannot enter the queue a second time. * * @author Steven J. Zeil * @version */public class OneTimeQueue { class QueueNode { TimeStamped data; QueueNode next; QueueNode (TimeStamped o) {data = o; next = null;} } private QueueNode front; private QueueNode rear; private int theSize; private static int theStamp = 0; private static Boolean lock = new Boolean (false); public OneTimeQueue() { front = null; rear = null; theSize = 0; synchronized (lock) { ++theStamp; } } public TimeStamped getFront() { return front.data; } public void removeFront() { if (front != null) { front = front.next; if (front == null) { rear = null; } --theSize; } } public void addToRear(TimeStamped newElement) { if (newElement.getStamp() < theStamp) { QueueNode qn = new QueueNode (newElement); if (front == null) { front = qn; rear = qn; } else { rear.next = qn; rear = qn; } ++theSize; newElement.putStamp(theStamp); } } public int size() { return theSize; } public boolean isEmpty() { return (theSize == 0); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -