public class DoubleLinkedSeq
extends java.lang.Object
implements java.lang.Cloneable
DoubleLinkedSeq
is a collection of double
numbers.
The sequence can have a special "current element," which is specified and
accessed through four methods that are not available in the sequence class
(start, getCurrent, advance and isCurrent).
Limitations:
Beyond Int.MAX_VALUE
elements, the size
method
does not work.
Note:
This file contains only blank implementations ("stubs")
because this is a Programming Project for my students.Constructor and Description |
---|
DoubleLinkedSeq()
Initialize an empty sequence.
|
Modifier and Type | Method and Description |
---|---|
void |
addAfter(int element)
Add a new element to this sequence, after the current element.
|
void |
addAll(DoubleLinkedSeq addend)
Place the contents of another sequence at the end of this sequence.
|
void |
addBefore(int element)
Add a new element to this sequence, before the current element.
|
void |
advance()
Move forward, so that the current element is now the next element in
this sequence.
|
static DoubleLinkedSeq |
catenation(DoubleLinkedSeq s1,
DoubleLinkedSeq s2)
Create a new sequence that contains all the elements from one sequence
followed by another.
|
java.lang.Object |
clone()
Generate a copy of this sequence.
|
double |
getCurrent()
Accessor method to get the current element of this sequence.
|
double |
isCurrent()
Accessor method to determine whether this sequence has a specified
current element that can be retrieved with the
getCurrent method. |
void |
removeCurrent()
Remove the current element from this sequence.
|
int |
size()
Determine the number of elements in this sequence.
|
void |
start()
Set the current element at the front of this sequence.
|
public DoubleLinkedSeq()
public void addAfter(int element)
element
- the new element that is being added
Postcondition:
A new copy of the element has been added to this sequence. If there was
a current element, then the new element is placed after the current
element. If there was no current element, then the new element is placed
at the end of the sequence. In all cases, the new element becomes the
new current element of this sequence.java.lang.OutOfMemoryError
- Indicates insufficient memory for a new node.public void addBefore(int element)
element
- the new element that is being added
Postcondition:
A new copy of the element has been added to this sequence. If there was
a current element, then the new element is placed before the current
element. If there was no current element, then the new element is placed
at the start of the sequence. In all cases, the new element becomes the
new current element of this sequence.java.lang.OutOfMemoryError
- Indicates insufficient memory for a new node.public void addAll(DoubleLinkedSeq addend)
addend
- a sequence whose contents will be placed at the end of this sequence
Precondition:
The parameter, addend
, is not null.
Postcondition:
The elements from addend
have been placed at the end of
this sequence. The current element of this sequence remains where it
was, and the addend
is also unchanged.java.lang.NullPointerException
- Indicates that addend
is null.java.lang.OutOfMemoryError
- Indicates insufficient memory to increase the size of this sequence.public void advance()
isCurrent()
returns true.
Postcondition:
If the current element was already the end element of this sequence
(with nothing after it), then there is no longer any current element.
Otherwise, the new element is the element immediately after the
original current element.java.lang.IllegalStateException
- Indicates that there is no current element, so
advance
may not be called.public java.lang.Object clone()
clone
in class java.lang.Object
DoubleLinkedSeq
before it can be used.java.lang.OutOfMemoryError
- Indicates insufficient memory for creating the clone.public static DoubleLinkedSeq catenation(DoubleLinkedSeq s1, DoubleLinkedSeq s2)
s1
- the first of two sequencess2
- the second of two sequences
Precondition:
Neither s1 nor s2 is null.s1
followed by the
elements of s2
(with no current element)java.lang.NullPointerException
- Indicates that one of the arguments is null.java.lang.OutOfMemoryError
- Indicates insufficient memory for the new sequence.public double getCurrent()
isCurrent()
returns true.java.lang.IllegalStateException
- Indicates that there is no current element, so
getCurrent
may not be called.public double isCurrent()
getCurrent
method.public void removeCurrent()
isCurrent()
returns true.
Postcondition:
The current element has been removed from this sequence, and the
following element (if there is one) is now the new current element.
If there was no following element, then there is now no current
element.java.lang.IllegalStateException
- Indicates that there is no current element, so
removeCurrent
may not be called.public int size()
public void start()