Java Reference
In-Depth Information
Display 15.25
A Doubly Linked List with an Iterator (part 2 of 3)
42 public void insertHere(String newData)
43 {
44 if (position == null && head != null )
45 {
46 // Add to end. First move a temp
47 // pointer to the end of the list
48 TwoWayNode temp = head;
49 while (temp.next != null )
50 temp = temp.next;
51 temp.next = new TwoWayNode(newData, temp, null );
52 }
53 else if (head == null || position.previous == null )
54 // at head of list
55 DoublyLinkedList.this.addToStart (newData);
56 else
57 {
58 // Insert before the current position
59 TwoWayNode temp = new TwoWayNode(newData,
position.previous, position);
60
position.previous.next = temp;
61
position.previous = temp;
62
}
63
}
64
public void delete( )
65
{
66
if (position == null )
67
throw new IllegalStateException( );
68
else if (position.previous == null )
69
{ // Deleting first node
70
head = head.next;
71
position = head;
72
}
73
else if (position.next == null )
74
{ // Deleting last node
75
position.previous.next = null ;
76
position = null ;
77
}
78
else
79
{
80
position.previous.next = position.next;
81
position.next.previous = position.previous;
82
position = position.next;
83
}
84
}
85
} // DoublyLinkedIterator
(continued)
Search WWH ::




Custom Search