DoubleLinkedQueueEntry<E> class
An entry in a doubly linked list. It contains a pointer to the next entry, the previous entry, and the boxed element.
class DoubleLinkedQueueEntry<E> { DoubleLinkedQueueEntry<E> _previous; DoubleLinkedQueueEntry<E> _next; E _element; DoubleLinkedQueueEntry(E e) { _element = e; } void _link(DoubleLinkedQueueEntry<E> p, DoubleLinkedQueueEntry<E> n) { _next = n; _previous = p; p._next = this; n._previous = this; } void append(E e) { new DoubleLinkedQueueEntry<E>(e)._link(this, _next); } void prepend(E e) { new DoubleLinkedQueueEntry<E>(e)._link(_previous, this); } E remove() { _previous._next = _next; _next._previous = _previous; _next = null; _previous = null; return _element; } DoubleLinkedQueueEntry<E> _asNonSentinelEntry() { return this; } DoubleLinkedQueueEntry<E> previousEntry() { return _previous._asNonSentinelEntry(); } DoubleLinkedQueueEntry<E> nextEntry() { return _next._asNonSentinelEntry(); } E get element { return _element; } void set element(E e) { _element = e; } }
Methods
DoubleLinkedQueueEntry<E> nextEntry() #
DoubleLinkedQueueEntry<E> nextEntry() { return _next._asNonSentinelEntry(); }
DoubleLinkedQueueEntry<E> previousEntry() #
DoubleLinkedQueueEntry<E> previousEntry() { return _previous._asNonSentinelEntry(); }