E N D
Question of the Day • Two friends were talking when the first said he could hold his breath for 6 minutes under water. The second replied:So. I can stay under water for 10 minutes without any equipment at all.After agreeing upon a $10,000 wager, the second friend won the bet and even went for 30 minutes. How?
Question of the Day • Two friends were talking when the first said he could hold his breath for 6 minutes under water. The second replied:So. I can stay under water for 10 minutes without any equipment at all.After agreeing upon a $10,000 wager, the second friend won the bet and even went for 30 minutes. How? She filled a glass with water & held it over her head!
Singly Linked List SLinkedList head size 4 Node Node Node Node elem next elem next elem next elem next • Are created using linear sequence of nodes • Each Node contains: • Reference to data (element)stored in Node • Link to next Node in linked list
Nodes Are Not Enough • Nodes 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
Nodes Are Not Enough • Nodes 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
Nodes Are Not Enough • Nodes 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 • Has to wear tie to meet their new boss
T removeFirst() head size 4 head size 3
T removeMiddle(Node<T> prev) head size 4 head size 3
Traversing a List • Often need to go through items in a list • Return element stored by the nthNode • 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) head size 4 head size 5
Doubly Linked List DNode Instance prev elem next • Link to previous node in list also in each node • Each DNode contains: • Element (data) reference • Link to nextDNode • Prev(ious) DNodealso 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) DNodealso linked
Doubly Linked List Sequence of 4 DNodes • Link to previous node in list also in each node • Each DNode contains: • Element (data) reference • Link to next DNode • Prev(ious) DNodealso linked
Doubly Linked List 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) DNodealso linked
Doubly Linked List DList header trailer size 4 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) DNodealso linked
Doubly Linked List • DNodecould extend Node • next & elem fields are needed by both classes • Only difference is prev field added by DNode • DListis not subclass of SList • Both classes define identical methods… • …are entirely different when implemented 1
Circular Linked List head size 4 • 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
Your Turn • Get into your groups and complete activity
For Next Lecture • Read GT3.5 for Monday • What is recursion? • Why does recursion rock so much? • How do you write a recursive method? • Week #7 weekly assignment available now • Since no school Tues., assignment due Wednesday • Programming assignment #1 due next Friday • Should be fun to learn about & use encryption • Pulls everything together & sees how much you know