Question of the Day A friend tells the truth when saying: A road near my house runs directly north-south; I get on the road facing north, drive for a mile, & end up south of where I started How does he do it?
Question of the Day A friend tells the truth when saying: A road near my house runs directly north-south; I get on the road facing north, drive for a mile, & end up south of where I started How does he do it? Note: He (anyone) doesn't live near the north pole
Question of the Day
Are created using linear sequence of nodes Each Node contains: Reference to data (element) stored in Node Link to next Node in linked list Singly Linked List
Node s Are Not Enough Node s are workers making linked lists possible Necessary for the smooth running of linked list Treated like other jobs smoothing things out Added & removed as needed Used only to keep the list running
Node s Are Not Enough
Node s are workers making linked lists possible Necessary for the smooth running of linked list Treated like other jobs smoothing things out Added & removed as needed Used only to keep the list running Never allowed outside of the linked list
Node s Are Not Enough
T removeFirst()
SLinkedList head size 4 SLinkedList head size 3
T removeMiddle(Node prev) SLinkedList head size 4 SLinkedList head size 3
Traversing a List Often need to go through items in a list Return element stored by the n th Node Search and find if element is in list Count elements larger/smaller/equal than some value Add an element at list’s end Cannot do this directly with linked lists Arrays have brackets, but linked lists use objects Must traverse list by travelling from Node to Node Relies heavily on understanding how objects work
void addLast(T el) SLinkedList head size 4 SLinkedList head size 5
Link to previous node in list also in each node Each DNode contains: Element (data) reference Link to next DNode Prev(ious) DNode also linked Doubly Linked List elem DNode Instance nextprev
Link to previous node in list also in each node Each DNode contains: Element (data) reference Link to next DNode Prev(ious) DNode also linked Doubly Linked List Doubly Linked List With 4 Elements Ø
Link to previous node in list also in each node Each DNode contains: Element (data) reference Link to next DNode Prev(ious) DNode also linked Doubly Linked List Sequence of 4 DNode s Ø
Link to previous node in list also in each node Each DNode contains: Element (data) reference Link to next DNode Prev(ious) DNode also linked Doubly Linked List & Sentinels Doubly Linked List With 4 Elements & Sentinels Ø Ø
Link to previous node in list also in each node Each DNode contains: Element (data) reference Link to next DNode Prev(ious) DNode also linked Doubly Linked List & Sentinels Doubly Linked List With 4 Elements & Sentinels DList head tail size 4 Ø Ø
Doubly Linked List DNode could extend Node next & elem fields are needed by both classes Only difference is prev field added by DNode DList is not subclass of SList Both classes define identical methods… …are entirely different when implemented
Identical nodes as singly or doubly linked list This example shows singly linked variety Reference to first node stored in last node Notice this becomes a big circle Now you know idea behind name Circular Linked List BCD head A
Your Turn Get into your groups and complete activity
For Next Lecture Read GT3.5 for Wednesday What is recursion? Why does recursion rock so much? How do you write a recursive method? Week #7 weekly assignment available now Angel also has programming assignment #1 Pulls everything together and shows off your stuff