+ All Categories
Home > Documents > Chap04 Linked List (1)

Chap04 Linked List (1)

Date post: 14-Apr-2018
Category:
Upload: kalaivani-manoharan
View: 220 times
Download: 0 times
Share this document with a friend

of 41

Transcript
  • 7/30/2019 Chap04 Linked List (1)

    1/41

    Data Structures Using Java 1

    Chapter 4

    Linked Lists

  • 7/30/2019 Chap04 Linked List (1)

    2/41

    Data Structures Using Java 2

    Chapter Objectives

    Learn about linked lists

    Become aware of the basic properties of linked

    lists Explore the insertion and deletion operations on

    linked lists

    Discover how to build and manipulate a linked list

  • 7/30/2019 Chap04 Linked List (1)

    3/41

    Data Structures Using Java 3

    Chapter Objectives

    Learn how to construct a doubly linked list

    Learn about linked lists with header and trailer

    nodes Become aware of circular linked lists

  • 7/30/2019 Chap04 Linked List (1)

    4/41

    Data Structures Using Java 4

  • 7/30/2019 Chap04 Linked List (1)

    5/41

    Data Structures Using Java 5

    Linked Lists

    Definition: a list of items, called nodes, in whichthe order of the nodes is determined by theaddress, called the link, stored in each node

    Every node in a linked list has two components: one to store relevant information

    one to store address (the link)of next node in list

  • 7/30/2019 Chap04 Linked List (1)

    6/41

    Data Structures Using Java 6

    Linked Lists

    Address of first node in list stored in separatelocation, called the heador first

    Data type of each node depends on the specificapplication kind of data being processed

    link component of each node is a referencevariable

    Data type of this reference variable is node typeitself

  • 7/30/2019 Chap04 Linked List (1)

    7/41

    Data Structures Using Java 7

    Linked Lists

    Structure of a node

    Structure of a linked list

  • 7/30/2019 Chap04 Linked List (1)

    8/41

    Data Structures Using Java 8

    Linked Lists: Some Properties

    The address of the first node in a linked list

    is stored in the reference variable head

    Each node has two components: one to store

    the info; and one to store the address of the

    next node

    head should always point to the first node

  • 7/30/2019 Chap04 Linked List (1)

    9/41

    Data Structures Using Java 9

    Linked Lists: Some Properties

    Linked list basic operations:

    Search the list to determine whether a particular

    item is in the list

    Insert an item in the list

    Delete an item from the list

  • 7/30/2019 Chap04 Linked List (1)

    10/41

    Data Structures Using Java 10

    Linked Lists: Some Properties

    Operations require traversal of the list

    Given a reference variable to the first node

    of the list, step through each of the nodes of

    the list

    Traverse a list using a reference variable of

    the same type as head

  • 7/30/2019 Chap04 Linked List (1)

    11/41

    Data Structures Using Java 11

    Linked Lists: Some Properties

  • 7/30/2019 Chap04 Linked List (1)

    12/41

    Linked Lists: Some Properties

    Suppose that current is a reference variable

    of the same type as head.

    Then the statement current = head; copies

    the value of head into current.

    Data Structures Using Java 12

  • 7/30/2019 Chap04 Linked List (1)

    13/41

    Data Structures Using Java 13

    Linked Lists: Some Properties

  • 7/30/2019 Chap04 Linked List (1)

    14/41

    Data Structures Using Java 14

    Linked Lists: Some Properties

  • 7/30/2019 Chap04 Linked List (1)

    15/41

    Data Structures Using Java 15

    Insertion

  • 7/30/2019 Chap04 Linked List (1)

    16/41

    Insertion

    Suppose that p points to the node with info

    65, and a new node with info 50 is to be

    created and inserted after p. The following statements create and store

    50 in the info field of a new node: newNode = new LinkedListNode();

    //create object newNode

    newNode.info = 50;

    //store 50 in the object newNode

    Data Structures Using Java 16

  • 7/30/2019 Chap04 Linked List (1)

    17/41

    Data Structures Using Java 17

    Insertion

    The following statements insert the node in

    the linked list at the required place:

    Code Sequence I newNode.link = q;

    p.link = newNode;

    Code Sequence II p.link = newNode;

    newNode.link = q;

  • 7/30/2019 Chap04 Linked List (1)

    18/41

    Data Structures Using Java 18

    Insertion

    Both code sequences produce the result shown below

  • 7/30/2019 Chap04 Linked List (1)

    19/41

    Data Structures Using Java 19

    Deletion

    Node to be deleted is 34

  • 7/30/2019 Chap04 Linked List (1)

    20/41

    Data Structures Using Java 20

    Deletion

    q = p.link;

    p.link = q.link;

    q = null;

  • 7/30/2019 Chap04 Linked List (1)

    21/41

    Data Structures Using Java 21

    Building a Linked List

    Two ways to build a linked list:

    1) forward

    2) backward

  • 7/30/2019 Chap04 Linked List (1)

    22/41

    Data Structures Using Java 22

    Building a Linked List

    What is needed to build a linked list forward:

    a reference variable for the first node a reference variable for the last node

    a reference variable for the new node

    being added

  • 7/30/2019 Chap04 Linked List (1)

    23/41

    Data Structures Using Java 23

    Building a Linked List

    Steps to build a linked list forward:

    Create a new node called newNode

    If first is NULL, the list is empty so you canmake first and last point to newNode

    If first is not NULL make last point to

    newNode and make last = newNode

  • 7/30/2019 Chap04 Linked List (1)

    24/41

    Data Structures Using Java 24

    Building a Linked List Forward

  • 7/30/2019 Chap04 Linked List (1)

    25/41

    Data Structures Using Java 25

    Building a Linked List Forward

  • 7/30/2019 Chap04 Linked List (1)

    26/41

    Data Structures Using Java 26

    Building a Linked List Forward

  • 7/30/2019 Chap04 Linked List (1)

    27/41

    Data Structures Using Java 27

    Building a Linked List

    What is needed to build a linked list

    backwards:

    a reference variable for the first node

    a reference variable to the new node

    being added

  • 7/30/2019 Chap04 Linked List (1)

    28/41

    Data Structures Using Java 28

    Building a Linked List

    Steps to build a linked list backwards:

    Create a new node newNode

    Insert newNode before first

    Update the value of the reference variable

    first

  • 7/30/2019 Chap04 Linked List (1)

    29/41

    Data Structures Using Java 29

    Linked List as an ADT

    Basic operations on a linked list are:

    Initialize the list

    Check whether the list is empty

    Output the list

    Find length of list

  • 7/30/2019 Chap04 Linked List (1)

    30/41

    Data Structures Using Java 30

    Linked List as an ADT

    Basic operations on a linked list are:

    Get info from last node

    Search for a given item

    Insert an item

    Delete an itemMake a copy of the linked list

  • 7/30/2019 Chap04 Linked List (1)

    31/41

    Data Structures Using Java 31

    Time-Complexity of Operations

  • 7/30/2019 Chap04 Linked List (1)

    32/41

    Data Structures Using Java 32

    Ordered Linked List

    In an ordered linked list the elements are sorted

    Because the list is ordered, we need to modify thealgorithms (from how they were implemented for

    the regular linked list) for the search, insert, and

    delete operations

  • 7/30/2019 Chap04 Linked List (1)

    33/41

    Data Structures Using Java 33

    Doubly Linked List

    Every node:

    has a next reference variable and a back

    reference variable

    (except the last node) contains the addressof the next node

    (except the first node) contains the address

    of the previous node

    Can be traversed in either direction

  • 7/30/2019 Chap04 Linked List (1)

    34/41

    Data Structures Using Java 34

    Doubly Linked List

  • 7/30/2019 Chap04 Linked List (1)

    35/41

    Data Structures Using Java 35

    Linked Lists with Header and Trailer

    Nodes Simplify insertion and deletion by never inserting

    an item before first or after last item and never

    deleting first node

    Set a header node at the beginning of the list

    containing a value smaller than the smallest value

    in the data set

    Set a trailer node at the end of the list containing avalue larger than the largest value in the data set

  • 7/30/2019 Chap04 Linked List (1)

    36/41

    Data Structures Using Java 36

    Linked Lists with Header and Trailer

    Nodes

    These two nodes, header and trailer, serve

    merely to simplify the insertion and deletionalgorithms and are not part of the actual list.

    The actual list is between these two nodes.

  • 7/30/2019 Chap04 Linked List (1)

    37/41

    Data Structures Using Java 37

    Circular Linked List

    A linked list in which the last node points to the

    first node is called a circular linked list

    In a circular linked list with more than one node, it

    is convenient to make the reference variable first

    point to the last node of the list

  • 7/30/2019 Chap04 Linked List (1)

    38/41

    Data Structures Using Java 38

    Circular Linked List

  • 7/30/2019 Chap04 Linked List (1)

    39/41

    Data Structures Using Java 39

    Programming Example: Video

    Store For a family or an individual, a favorite place to go on weekends or

    holidays is to a video store to rent movies. A new video store in yourneighborhood is about to open. However, it does not have a program tokeep track of its videos and customers. The store managers wantsomeone to write a program for their system so that the video store canfunction. The program should be able to perform the followingoperations:

    1. Rent a video; that is, check out a video.

    2. Return, or check in, a video.

    3. Create a list of videos owned by the store.

    4. Show the details of a particular video.5. Print a list of all the videos in the store.

    6. Check whether a particular video is in the store.

    7. Maintain a customer database.

    8. Print a list of all the videos rented by each customer.

  • 7/30/2019 Chap04 Linked List (1)

    40/41

    Data Structures Using Java 40

    Chapter Summary

    Linked Lists

    Traversal

    Searching

    Inserting

    deleting

    Building a linked list forwards

    Building a linked list backwards

  • 7/30/2019 Chap04 Linked List (1)

    41/41

    D S U i J 41

    Chapter Summary

    Linked List as an ADT

    Ordered Linked Lists

    Doubly Linked Lists

    Linked lists with header and trailer nodes

    Circular linked lists


Recommended