• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Ch04 Linked List Structure

Ch04 Linked List Structure






Total Views
Views on SlideShare
Embed Views



3 Embeds 13

http://www.slideshare.net 7
http://itnlu.info 5 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    Ch04 Linked List Structure Ch04 Linked List Structure Presentation Transcript

    • Chapter 4 Linked Structures
    • Chapter Objectives
      • Describe the use of references to create linked structures
      • Compare linked structures to array-based structures
      • Explore the techniques for managing a linked list
      • Discuss the need for a separate node to form linked structures
      • Implement a set collection using a linked list
    • References as Links
      • There are many ways to implement a collection
      • In chapter 3 we explored an array-based implementation of a set collection
      • A linked structure uses object reference variables to link one object to another
      • Recall that an object reference variable stores the address of an object
      • In that sense, an object reference is a pointer to an object
    • FIGURE 4.1 An object reference variable pointing to an object
    • Self-Referential Objects
      • A Person object, for instance, could contain a reference variable to another Person object:
      public class Person { private String name; private String address; private Person next; // a link to another Person object // whatever else }
    • Linked Lists
      • This type of reference can be used to form a linked list , in which one object refers to the next, which refers to the next, etc.
      • Each object in a list is often generically called a node
      • A linked list is a dynamic data structure in that its size grows and shrinks as needed, unlike an array, whose size is fixed
      • Java objects are created dynamically when they are instantiated
    • FIGURE 4.2 A linked list
    • Non-linear Structures
      • A linked list, as the name implies, is a linear structure
      • Object references also allow us to create non-linear structures such as hierarchies and graphs
    • FIGURE 4.3 A complex linked structure
    • Managing Linked Lists
      • The references in a linked list must be carefully managed to maintain the integrity of the structure
      • Special care must be taken to ensure that the entry point into the list is maintained properly
      • The order in which certain steps are taken is important
      • Consider inserting and deleting nodes in various positions within the list
    • FIGURE 4.4 Inserting a node at the front of a linked list
    • FIGURE 4.5 Inserting a node in the middle of a linked list
    • FIGURE 4.6 Deleting the first node in a linked list
    • FIGURE 4.7 Deleting an interior node from a linked list
    • Elements without Links
      • The problem with self-referential objects is that they "know" they are part of a list
      • A better approach is to manage a separate list of nodes that also reference the objects stored in the list
      • The list is still managed using the same techniques
      • The objects stored in the list need no special implementation to be part of the list
      • A generic list collection can be used to store any kind of object
    • FIGURE 4.8 Using separate node objects to store and link elements
    • Doubly Linked Lists
      • There are variations on the implementation of linked lists that may be useful in particular situations
      • For example, in a doubly linked list each node has a reference to both the next and previous nodes in the list
      • This makes traversing the list easier
    • FIGURE 4.9 A doubly linked list
    • Listing 4.1
    • Listing 4.1 (cont.)
    • Listing 4.1 (cont.)
    • FIGURE 4.10 A linked implementation of a set collection
    • LinkedSet - Constructor
    • LinkedSet - the add Operation
    • LinkedSet - the removeRandom Operation
    • LinkedSet - the removeRandom Operation
    • LinkedSet - the remove Operation
    • LinkedSet - the remove Operation
    • LinkedSet - the remove Operation
    • LinkedSet - the iterator Operation
    • Listing 4.2
    • Listing 4.2 (cont.)
    • Listing 4.2 (cont.)
    • FIGURE 4.11 UML description of the LinkedSet<T> class
    • Analysis of Linked Operations
      • Since the order is irrelevant, and there is no capacity to expand, adding an element to the set is O(1)
      • Removing a particular element, because it must be found, is O(n)
      • Removing a random element requires a traversal of the list, and therefore is O(n)