1 / 43

List Implementations

List Implementations. Chapter 9. Array-Based Implementation of the ADT List. List operations in their UML form. Array-Based Implementation of the ADT List. Array-based implementation is a natural choice Both an array and a list identify their items by number However

tartt
Download Presentation

List Implementations

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. List Implementations Chapter 9

  2. Array-Based Implementation of the ADT List • List operations in their UML form

  3. Array-Based Implementation of the ADT List • Array-based implementation is a natural choice • Both an array and a list identify their items by number • However • ADT list has operations such as getLengththat an array does not • Must keep track of number of entries

  4. The Header File • FIGURE 9-1 An array-based implementation of the ADT list

  5. The Header File • LISTING 9-1 The header file for the class ArrayList

  6. The Header File • LISTING 9-1 The header file for the class ArrayList

  7. The Header File • LISTING 9-1 The header file for the class ArrayList

  8. The Implementation File • Constructor, methods isEmpty and getLength

  9. The Implementation File • Method getEntry

  10. The Implementation File • Method insert

  11. The Implementation File • FIGURE 9-2 Shifting items for insertion

  12. The Implementation File • Method getEntry

  13. The Implementation File • Method replace

  14. The Implementation File • Method remove

  15. The Implementation File • FIGURE 9-3 Shifting items to remove an entry

  16. The Implementation File • Method clear

  17. Link-Based Implementation of the ADT List • We can use C++ pointers instead of an array to implement ADT list • Link-based implementation does not shift items during insertion and removal operations • We need to represent items in the list and its length

  18. Link-Based Implementation of the ADT List • FIGURE 9-4 A link-based implementation of the ADT list

  19. The Header File • LISTING 9-2 The header file for the class LinkedList

  20. The Header File • LISTING 9-2 The header file for the class LinkedList

  21. The Header File • LISTING 9-2 The header file for the class LinkedList

  22. The Implementation File • Constructor

  23. The Implementation File • Method getEntry

  24. The Implementation File • Method getNodeAt

  25. The Implementation File • Insertion process requires three high-level steps: • Create a new node and store the new data in it. • Determine the point of insertion. • Connect the new node to the linked chain by changing pointers.

  26. The Implementation File • Method insert

  27. The Implementation File • Method insert

  28. The Implementation File • FIGURE 9-5 Inserting a new node between existing nodes of a linked chain

  29. The Implementation File • FIGURE 9-5 Inserting a new node between existing nodes of a linked chain

  30. The Implementation File • FIGURE 9-5 Inserting a new node between existing nodes of a linked chain

  31. The Implementation File • FIGURE 9-6 Inserting a new node at the end of a chain of linked nodes

  32. The Implementation File • FIGURE 9-7 Removing a node from a chain

  33. The Implementation File • FIGURE 9-8 Removing the last node

  34. The Implementation File • Method remove

  35. The Implementation File • Method remove

  36. The Implementation File • Method clearand the destructor

  37. Using Recursion in LinkedList Methods • Possible to process a linked chain by • Processing its first node and • Then the rest of the chain recursively • Logic used to add a node

  38. Using Recursion in LinkedList Methods • FIGURE 9-9 Recursively adding a node at the beginning of a chain

  39. Using Recursion in LinkedList Methods • FIGURE 9-10 Recursively adding a node between existing nodes in a chain

  40. Using Recursion in LinkedList Methods • FIGURE 9-10 Recursively adding a node between existing nodes in a chain

  41. Using Recursion in LinkedList Methods • FIGURE 9-10 Recursively adding a node between existing nodes in a chain

  42. Comparing Implementations • Time to access the ith node in a chain of linked nodes depends on i • You can access array items directly with equal access time • Insertions and removals with link-based implementation • Do not require shifting data • Do require a traversal

  43. End Chapter 9

More Related