Introduction to Linked Lists: An Overview of LinkedIntList

Slide Note
Embed
Share

This lesson delves into Linked Lists by introducing the LinkedIntList and its implementation with a chain of linked nodes. Understanding the concept of LinkedIntList, its methods like add, get, indexOf, remove, size, and toString, as well as how it maintains references to its front, is crucial. Through a series of visual aids and explanations, learners will grasp the fundamentals of linked nodes and traversals, paving the way for a deeper comprehension of data structures.


Uploaded on Sep 14, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Lesson 7 Linked Lists Lesson 7 - Spring 2023 1

  2. Linked Nodes So Far Small sequences of nodes connected together Using the ListNode class Traversals over these sequences with while loops data next data next node 121 122 Lesson 7 - Spring 2023 2

  3. Introducing the LinkedIntList! New collection named LinkedIntList Lesson 7 - Spring 2023 3

  4. Introducing the LinkedIntList! New collection named LinkedIntList Same kinds of methods as the ArrayIntList add, add, get, indexOf, remove, size, toString Lesson 7 - Spring 2023 4

  5. Introducing the LinkedIntList! New collection named LinkedIntList Same kinds of methods as the ArrayIntList add, add, get, indexOf, remove, size, toString Implemented with chain of linked nodes Lesson 7 - Spring 2023 5

  6. Introducing the LinkedIntList! New collection named LinkedIntList Same kinds of methods as the ArrayIntList add, add, get, indexOf, remove, size, toString Implemented with chain of linked nodes Keeps reference to its front as a field null is the end of the list If front is null, list is empty Lesson 7 - Spring 2023 6

  7. Introducing the LinkedIntList! Implemented with chain of linked nodes Keeps reference to its front as a field null is the end of the list; if front is null, list is empty LinkedIntList front add(index) add(index, value) indexOf(value) remove(index) size() toString() Lesson 7 - Spring 2023 7

  8. Introducing the LinkedIntList! Implemented with chain of linked nodes Keeps reference to its front as a field null is the end of the list; if front is null, list is empty LinkedIntList ListNode front data next add(index) add(index, value) indexOf(value) remove(index) size() toString() 16 Lesson 7 - Spring 2023 8

  9. Introducing the LinkedIntList! Implemented with chain of linked nodes Keeps reference to its front as a field null is the end of the list; if front is null, list is empty LinkedIntList ListNode ListNode ListNode front data next data next data next add(index) add(index, value) indexOf(value) remove(index) size() toString() 16 -3 27 Lesson 7 - Spring 2023 9

  10. printList Revisited Lesson 7 - Spring 2023 10

  11. printList Revisited Client Code: Lesson 7 - Spring 2023 11

  12. printList Revisited Client Code: Lesson 7 - Spring 2023 12

  13. printList Revisited Client Code: Lesson 7 - Spring 2023 13

  14. Client Code: front data next data next data next 16 -3 27 Lesson 7 - Spring 2023 14

  15. Client Code: front data next data next data next 16 -3 27 Lesson 7 - Spring 2023 15

  16. Client Code: front data next data next data next 16 -3 27 Lesson 7 - Spring 2023 16

  17. Client Code: front data next data next data next 16 -3 27 Lesson 7 - Spring 2023 17

  18. Client Code: front data next data next -3 27 Lesson 7 - Spring 2023 18

  19. Client Code: front data next data next -3 27 Lesson 7 - Spring 2023 19

  20. Client Code: front data next data next -3 27 Lesson 7 - Spring 2023 20

  21. Client Code: front data next data next -3 27 Lesson 7 - Spring 2023 21

  22. Client Code: front data next 27 Lesson 7 - Spring 2023 22

  23. Client Code: front data next 27 Lesson 7 - Spring 2023 23

  24. Client Code: front Lesson 7 - Spring 2023 24

  25. Client Code: front Lesson 7 - Spring 2023 25

  26. public void printList() { if (front == null) { System.out.println( [] ); } else { System.out.print( [ + front.data); ListNode curr = front.next; while (curr != null) { System.out.print( , + curr.data); curr = curr.next; } System.out.println( ] ); } } Client Code: front data next data next data next 16 -3 27 Lesson 7 - Spring 2023 27

  27. public void printList() { if (front == null) { System.out.println( [] ); } else { System.out.print( [ + front.data); ListNode curr = front.next; while (curr != null) { System.out.print( , + curr.data); curr = curr.next; } System.out.println( ] ); } } Client Code: front data next data next data next 16 -3 27 Lesson 7 - Spring 2023 28

  28. public void printList() { if (front == null) { System.out.println( [] ); } else { System.out.print( [ + front.data); ListNode curr = front.next; while (curr != null) { System.out.print( , + curr.data); curr = curr.next; } System.out.println( ] ); } } Client Code: curr front data next data next data next 16 -3 27 Lesson 7 - Spring 2023 29

  29. public void printList() { if (front == null) { System.out.println( [] ); } else { System.out.print( [ + front.data); ListNode curr = front.next; while (curr != null) { System.out.print( , + curr.data); curr = curr.next; } System.out.println( ] ); } } Client Code: curr front data next data next data next 16 -3 27 Lesson 7 - Spring 2023 30

  30. public void printList() { if (front == null) { System.out.println( [] ); } else { System.out.print( [ + front.data); ListNode curr = front.next; while (curr != null) { System.out.print( , + curr.data); curr = curr.next; } System.out.println( ] ); } } Client Code: curr front data next data next data next 16 -3 27 Lesson 7 - Spring 2023 31

  31. public void printList() { if (front == null) { System.out.println( [] ); } else { System.out.print( [ + front.data); ListNode curr = front.next; while (curr != null) { System.out.print( , + curr.data); curr = curr.next; } System.out.println( ] ); } } Client Code: front data next data next data next 16 -3 27 Lesson 7 - Spring 2023 32

  32. remove(int value) Visualization Lesson 7 - Spring 2023 33

  33. Without Stopping One Early Client calls list.remove(-3) front data next data next data next data next 16 42 -3 27 Lesson 7 - Spring 2023 34

  34. Without Stopping One Early Client calls list.remove(-3) front data next data next data next data next 16 42 -3 27 curr Lesson 7 - Spring 2023 35

  35. Without Stopping One Early Client calls list.remove(-3) front data next data next data next data next 16 42 -3 27 curr Lesson 7 - Spring 2023 36

  36. Without Stopping One Early Client calls list.remove(-3) front data next data next data next data next 16 42 -3 27 curr Lesson 7 - Spring 2023 37

  37. Without Stopping One Early Client calls list.remove(-3) front data next data next data next data next 16 42 -3 27 curr Lesson 7 - Spring 2023 38

  38. Without Stopping One Early Client calls list.remove(-3) This is the reference we need to change! front data next data next data next data next 16 42 -3 27 curr Lesson 7 - Spring 2023 39

  39. Without Stopping One Early Client calls list.remove(-3) This is the reference we need to change! front data next data next data next data next 16 42 -3 27 curr Lesson 7 - Spring 2023 40

  40. With Stopping One Early Client calls list.remove(-3) This is the reference we need to change! front data next data next data next data next 16 42 -3 27 Lesson 7 - Spring 2023 41

  41. With Stopping One Early Client calls list.remove(-3) This is the reference we need to change! front data next data next data next data next 16 42 -3 27 curr Lesson 7 - Spring 2023 42

  42. With Stopping One Early Client calls list.remove(-3) This is the reference we need to change! front data next data next data next data next 16 42 -3 27 curr Lesson 7 - Spring 2023 43

  43. With Stopping One Early Client calls list.remove(-3) This is the reference we need to change! front data next data next data next data next 16 42 -3 27 curr Lesson 7 - Spring 2023 44

  44. Changing a list There are only two ways to change a linked list: Change the value of front (modify the front of the list) Change the value of <node>.next (modify middle or end of list to point somewhere else) Implications: To add in the middle, need a reference to the previous node Front is often a special case 45

More Related Content