www.umbc.edu
CMSC202 Computer Science II for Majors
Lecture 12 –
Linked Lists
- Dr. Katherine Gibson
Computer Science II for Majors Lecture 12 Linked Lists Dr. - - PowerPoint PPT Presentation
CMSC202 Computer Science II for Majors Lecture 12 Linked Lists Dr. Katherine Gibson www.umbc.edu Last Class We Covered Inheritance Object relationships is-a (Inheritance) has-a (Composition and Aggregation) 2 www.umbc.edu
www.umbc.edu
www.umbc.edu
2
www.umbc.edu
www.umbc.edu
4
www.umbc.edu
www.umbc.edu
6
www.umbc.edu
7
data link head data link data link data link
NULL In these diagrams, a doubly-
tail
www.umbc.edu
8
www.umbc.edu
9
Array location in memory NULL First node of Linked List Each cell is a block of memory
www.umbc.edu
10
www.umbc.edu
www.umbc.edu
12
data link
www.umbc.edu
class Node { String name; int testGrade; Node *link; // constructor // accessors // mutators };
13
link testGrade name
link can point to other nodes two options:
NULL
www.umbc.edu
www.umbc.edu
15
www.umbc.edu
16
NULL
link DUMMY DUMMY link testGrade name link testGrade name link testGrade name link
m_head
www.umbc.edu
17
www.umbc.edu
18
www.umbc.edu
19
www.umbc.edu
20
www.umbc.edu
21
www.umbc.edu
www.umbc.edu
link DUMMY DUMMY
FRONT CURR
NULL
link 91 Bob link 94 Eve
NULL
for (CURR = FRONT; CURR != NULL; CURR = CURR->link) {
www.umbc.edu
link DUMMY DUMMY FRONT link 91 Bob link 94 Eve
NULL
CURR
for (CURR = FRONT; CURR != NULL; CURR = CURR->link) {
www.umbc.edu
link DUMMY DUMMY
FRONT link 91 Bob link 94 Eve
NULL
CURR
for (CURR = FRONT; CURR != NULL; CURR = CURR->link) { // ignore, dummy node
www.umbc.edu
link DUMMY DUMMY
FRONT link 91 Bob link 94 Eve
NULL
CURR
for (CURR = FRONT; CURR != NULL; CURR = CURR->link) {
www.umbc.edu
link DUMMY DUMMY
FRONT link 91 Bob link 94 Eve
NULL
CURR
for (CURR = FRONT; CURR != NULL; CURR = CURR->link) {
www.umbc.edu
link DUMMY DUMMY
FRONT link 91 Bob link 94 Eve
NULL
CURR
for (CURR = FRONT; CURR != NULL; CURR = CURR->link) { // print information (Bob)
www.umbc.edu
link DUMMY DUMMY
FRONT link 91 Bob link 94 Eve
NULL
CURR
for (CURR = FRONT; CURR != NULL; CURR = CURR->link) {
www.umbc.edu
link DUMMY DUMMY
FRONT link 91 Bob link 94 Eve
NULL
CURR
for (CURR = FRONT; CURR != NULL; CURR = CURR->link) {
www.umbc.edu
link DUMMY DUMMY
FRONT link 91 Bob link 94 Eve
NULL
CURR
for (CURR = FRONT; CURR != NULL; CURR = CURR->link) { // print information (Eve)
www.umbc.edu
link DUMMY DUMMY
FRONT link 91 Bob link 94 Eve
NULL
CURR
for (CURR = FRONT; CURR != NULL; CURR = CURR->link) {
www.umbc.edu
link DUMMY DUMMY
FRONT link 91 Bob link 94 Eve
NULL
CURR
for (CURR = FRONT; CURR != NULL; CURR = CURR->link) {
NULL
www.umbc.edu
link DUMMY DUMMY
FRONT link 91 Bob link 94 Eve
NULL
CURR
for (CURR = FRONT; CURR != NULL; CURR = CURR->link) {
NULL
} // exit the loop
www.umbc.edu
35
www.umbc.edu
36