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

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

Upload: terence-chase

Post on 20-Jan-2016

239 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: © 2014 Goodrich, Tamassia, Goldwasser Singly Linked Lists1 Presentation for use with the textbook Data Structures and Algorithms in Java, 6 th edition,

© 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

Page 2: © 2014 Goodrich, Tamassia, Goldwasser Singly Linked Lists1 Presentation for use with the textbook Data Structures and Algorithms in Java, 6 th edition,

© 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

Page 3: © 2014 Goodrich, Tamassia, Goldwasser Singly Linked Lists1 Presentation for use with the textbook Data Structures and Algorithms in Java, 6 th edition,

© 2014 Goodrich, Tamassia, GoldwasserSingly Linked Lists 3

A Nested Node Class

Page 4: © 2014 Goodrich, Tamassia, Goldwasser Singly Linked Lists1 Presentation for use with the textbook Data Structures and Algorithms in Java, 6 th edition,

© 2014 Goodrich, Tamassia, GoldwasserSingly Linked Lists 4

Accessor Methods

Page 5: © 2014 Goodrich, Tamassia, Goldwasser Singly Linked Lists1 Presentation for use with the textbook Data Structures and Algorithms in Java, 6 th edition,

© 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

Page 6: © 2014 Goodrich, Tamassia, Goldwasser Singly Linked Lists1 Presentation for use with the textbook Data Structures and Algorithms in Java, 6 th edition,

© 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

Page 7: © 2014 Goodrich, Tamassia, Goldwasser Singly Linked Lists1 Presentation for use with the textbook Data Structures and Algorithms in Java, 6 th edition,

© 2014 Goodrich, Tamassia, GoldwasserSingly Linked Lists 7

Java Methods

Page 8: © 2014 Goodrich, Tamassia, Goldwasser Singly Linked Lists1 Presentation for use with the textbook Data Structures and Algorithms in Java, 6 th edition,

© 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

Page 9: © 2014 Goodrich, Tamassia, Goldwasser Singly Linked Lists1 Presentation for use with the textbook Data Structures and Algorithms in Java, 6 th edition,

© 2014 Goodrich, Tamassia, GoldwasserSingly Linked Lists 9

Java Method

Page 10: © 2014 Goodrich, Tamassia, Goldwasser Singly Linked Lists1 Presentation for use with the textbook Data Structures and Algorithms in Java, 6 th edition,

© 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