1
COMP 250
Lecture 6
doubly linked lists
- Sept. 20/21, 2017
doubly linked lists Sept. 20/21, 2017 1 Singly linked list head - - PowerPoint PPT Presentation
COMP 250 Lecture 6 doubly linked lists Sept. 20/21, 2017 1 Singly linked list head tail 2 Doubly linked list next prev element head Each node has a reference to the next node and to the previous node . tail 3 class DNode< E
1
2
3
head tail next prev element
4
next element prev
5
head tmp tail next element
6
head tail
next prev element
7
: get(i) set(i,e) add(i,e) remove(i) :
8
head tail
null null
9
10
dummyHead dummyTail null null null null
i = 0 i = 1 i = 2 i = 3
11
DNode<E> dummyHead; DNode<E> dummyTail; int size; : // constructor DLinkedList<E>(){ dummyHead = new DNode<E>(); dummyTail = new DNode<E>(); dummyHead.next = dummyTail; dummyTail.prev = dummyHead; size = 0; } private class DNode<E>{ … }
dummyHead dummyTail null null null null
12
DLinkedList< Shape >
dummyHead size 4 dummyTail
13
DLinkedList< Shape >
dummyHead size 4 dummyTail
14
dummyHead dummyTail null null null
i = 0 i = 1 i = 2 i = 3
15
dummyHead dummyTail null null null
i = 0 i = 1 i = 2 i = 3
16
17
node
next prev element next prev element
18
19
20
21
https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html
22
23
24
25
26
27
𝑶 𝑶+𝟐 𝟑
28
29
null null
30
31
32