|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object jpaul.DataStructs.WorkStack<T>
public class WorkStack<T>
WorkStack
is a WorkSet
with LIFO order.
Good for algorithms that like to iterate over the most-recently
changed spots. The add
/extract
operations have O(1) complexity.
Field Summary | |
---|---|
protected java.util.LinkedList<T> |
list
List that provides the order of the elements from this workset. |
Constructor Summary | |
---|---|
WorkStack()
|
Method Summary | |
---|---|
boolean |
add(T elem)
Adds the element elem to this
workset. |
boolean |
addAll(java.util.Collection<T> elems)
Adds all elements from elems to this
workset. |
protected void |
addToOrder(T elem)
Adds elem to the underlying list. |
void |
clear()
Removes all elements from the workset. Complexity: O(1). |
boolean |
contains(T e)
Checks whether this workset contains the element
e .Complexity: O(1). |
T |
extract()
Returns the first element of this workset
(according to the order specific to this workset. |
protected T |
extractInOrder()
Overrides WorkSetAbstr.extractInOrder() . |
boolean |
isEmpty()
Checks whether this workset is empty.Complexity: O(1). |
int |
size()
Returns the size of this workset.Invariant: isEmpty() iff size() ==
0 .Complexity: O(1). |
java.lang.String |
toString()
|
protected java.util.Collection<T> |
underlyingOrder()
Returns the underlying ordered collection. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected java.util.LinkedList<T> list
this
workset.
Constructor Detail |
---|
public WorkStack()
Method Detail |
---|
protected void addToOrder(T elem)
elem
to the underlying list. Subclasses
will have to choose whether they want to perform the addition
at the head, respectively at the tail of the list.
Precondition: elem
is not already in the list.
protected T extractInOrder()
WorkSetAbstr.extractInOrder()
. States that
we always extract elements from the head of the list.
Therefore, subclasses define the extraction order by
overriding WorkSetAbstr.addToOrder(T)
.
protected java.util.Collection<T> underlyingOrder()
clear
and
toString
.
public boolean add(T elem)
WorkSet
elem
to this
workset.
add
in interface WorkSet<T>
true
if elem
was not already
in the workset. If elem
was already in the
workset, the workset does not change in any way, and
add
returns false
.public boolean addAll(java.util.Collection<T> elems)
WorkSet
elems
to this
workset.
addAll
in interface WorkSet<T>
true
if any of the added elements was not
already in this
workset. Otherwise, the workset
does not change in any way, and add
returns
false
.public T extract()
WorkSet
this
workset
(according to the order specific to this
workset.
The element is removed from the workset. Throws a NoSuchElementException
if
the workset is empty.
extract
in interface WorkSet<T>
public void clear()
WorkSet
clear
in interface WorkSet<T>
public boolean isEmpty()
WorkSet
this
workset is empty.
isEmpty
in interface WorkSet<T>
public boolean contains(T e)
WorkSet
this
workset contains the element
e
.
contains
in interface WorkSet<T>
public int size()
WorkSet
this
workset.isEmpty()
iff size() ==
0
.
size
in interface WorkSet<T>
public java.lang.String toString()
toString
in class java.lang.Object
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |