© 2014 goodrich, tamassia, goldwasser singly linked lists1 presentation for use with the textbook...

Post on 20-Jan-2016

239 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

© 2014 Goodrich, Tamassia, GoldwasserSingly Linked Lists 1

Singly Linked Lists

Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 2014

© 2014 Goodrich, Tamassia, GoldwasserSingly Linked Lists 2

Singly Linked ListA singly linked list is a concrete data structure consisting of a sequence of nodes, starting from a head pointerEach node stores

element link to the next node

next

element node

A B C D

head

© 2014 Goodrich, Tamassia, GoldwasserSingly Linked Lists 3

A Nested Node Class

© 2014 Goodrich, Tamassia, GoldwasserSingly Linked Lists 4

Accessor Methods

© 2014 Goodrich, Tamassia, GoldwasserSingly Linked Lists 5

Inserting at the Head• Allocate

new node• Insert new

element• Have new

node point to old head

• Update head to point to new node

© 2014 Goodrich, Tamassia, Goldwasser

Inserting at the Tail•Allocate a new

node

• Insert new

element

•Have new node

point to null

•Have old last

node point to new

node

•Update tail to

point to new node

Singly Linked Lists 6

© 2014 Goodrich, Tamassia, GoldwasserSingly Linked Lists 7

Java Methods

© 2014 Goodrich, Tamassia, Goldwasser

Removing at the Head

• Update head

to point to

next node in

the list

• Allow

garbage

collector to

reclaim the

former first

node

Singly Linked Lists 8

© 2014 Goodrich, Tamassia, GoldwasserSingly Linked Lists 9

Java Method

© 2014 Goodrich, Tamassia, Goldwasser

Removing at the Tail

• Removing at the tail of a singly linked list is not efficient!

• There is no constant-time way to update the tail to point to the previous node

Singly Linked Lists 10

top related