Java Reference
In-Depth Information
Display 15.25
A Doubly Linked List with an Iterator
(part 1 of 3)
1
import
java.util.NoSuchElementException;
2
public
class
DoublyLinkedList
3{
4
private
class
TwoWayNode
5
{
6
private
String item;
7
private
TwoWayNode previous;
8
private
TwoWayNode next;
9
public
TwoWayNode( )
10
{
11
item =
null
;
12
next =
null
;
13
previous =
null
;
14
}
15
public
TwoWayNode(String newItem, TwoWayNode previousNode, TwoWayNode nextNode)
16
{
17
item = newItem;
18
next = nextNode;
19
previous = previousNode;
20
}
21
}
//End of TwoWayNode inner class
22
public
class
DoublyLinkedIterator
23
{
24
// We do not need a previous node when using a doubly linked list
25
private
TwoWayNode position = null;
26
public
DoublyLinkedIterator( )
27
{
28
position = head;
29
}
30
public
void
restart( )
31
{
32
position = head;
33
}
34
public
String next( )
35
{
36
if
(!hasNext( ))
37
throw
new
IllegalStateException( );
38
String toReturn = position.item;
39
position = position.next;
40
return
toReturn;
41
}