Chapter 3
Sponsored Links
This presentation is the property of its rightful owner.
1 / 65

Chapter 3 PowerPoint PPT Presentation


  • 50 Views
  • Uploaded on
  • Presentation posted in: General

Chapter 3. ADTs unsorted List and Sorted List. List Definitions. Linear relationship Each element except the first has a unique predecessor, and each element except the last has a unique successor. Length The number of items in a list; the length can vary over time. List Definitions.

Download Presentation

Chapter 3

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Chapter 3

ADTs unsorted List and Sorted List


List Definitions

Linear relationship Each element except the first has a unique predecessor, and each element except the last has a unique successor.

Length The number of items in a list; the length can vary over time.


List Definitions

Unsorted list A list in which data items are placed in no particular order; the only relationship between data elements is the list predecessor and successor relationships.

Sorted list A list that is sorted by the value in the key; there is a semantic relationship among the keys of the items in the list.

Key The attributes that are used to determine the logical order of the list.


Assumptions for All our Lists

  • Our lists are composed of unique elements.

  • When sorted, our lists are sorted from the smallest to largest key value.

  • We use the “by copy” approach.

  • We use the programming “by contract” approach.


Development of an Unsorted List ADT: UnsortedStringList


Unsorted List ADT Specification


Constructors


Observers


Transformers


Iterators


Application Level


List Design Terminology


Instance Variables of Unsorted List ADT


Beginning of Unsorted StringList Class:


Constructors


Definitions

  • Signature The distinguishing features of a method heading. The combination of a method name with the number and type(s) of its parameters in their given order.

  • Overloading The repeated use of a method name with a different signature.


Simple Observers

public boolean isFull ( )

// Returns whether this lis is full

{

return (list.length == numItems);

}


isThere Operation


Retrieving an Item in an Unsorted List


Retrieving an Item in an Unsorted List


insert Operation


Deleting Bobby (move up)

  • public void delete (String item)

  • // Deletes the element that matches item from this list

  • {

  • int location = 0;

  • while (item.compareTo(list[location]) != 0)

  • location++;

  • If(isThere(item)

  • {

  • For( int I = location; i,<numItm-1;i++)

  • list[i] = list[i+1];

  • }

  • }


Deleting Bobby (swap)—more efficient

  • public void delete (String item)

  • // Deletes the element that matches item from this list

  • {

  • int location = 0;

  • while (item.compareTo(list[location]) != 0)

  • location++;

  • list[location] = list[numItems - 1];

  • numItems--;

  • }


UML Diagram of UnsortedStringList


Reuse Operations

Ways we could reuse the code of the Unsorted List ADT to create the code for the Sorted List ADT:

  • Cut and Paste—”cut and paste” the code that we are able to reuse into the new file.

  • Direct Inheritance—have the Sorted List ADT inherit methods from the Unsorted List ADT.

  • Abstract Classes—resolve the deficiencies of both of the previousapproaches.


Steps for Using Abstract Class Approach

  • We first create an abstract list class.

    • Its concrete methods provide the operations that our two list ADTs share in common.

    • Its abstract methods provide the operations that are not shared.

  • Then create two concrete classes that extend the abstract list class.

    • One that implements an unsorted list

    • The other that implements a sorted list


The Abstract Class

  • Please click on the following link Programs/C03P165.jpg to view the appropriate program.


Extending the Abstract Class

  • Please click on the following link Programs/C03P166.jpg to view the appropriate program.


UML Diagram


Abstract Data Type Sorted List


Sorted List ADT Specification (partial)


Constructors


Redefined insert


Redefined Delete


insert Operation

  • Find the place where the new element begins.

  • Create space for the new element.

  • Put the new element on the list.


Original List


Insert Becca


Result


insert (item)


delete (item)


Binary Search Algorithm


isThere (item): returns boolean


UML Diagram

  • Please click on the following link Programs/C03P180.jpg to view the appropriate program.


Comparison of Algorithms

Big-O Notation A notation that expresses computing time (complexity) as the term in a function that increases most rapidly relative to the size of a problem

If

f(N) = N4 + 100N2 + 10N + 50

then f(N) is 0(N4).

N represents the size of the problem.


Comparison of Rates of Growth


Comparison of Linear and Binary Searches


Big-O Comparison of List Operations


Generic ADTs

So far…

  • An unsorted list of strings

  • An unsorted list of strings that extended String List

  • A sorted list of strings that extended String List

    Next—

  • Lists of generic data

    Generic Data Type A type for which the operations are defined but the types of the items being manipulated are not


The Listable Interface


A ListCircle Class


A Generic Abstract List Class

  • Please click on the following link Programs/C03P196.jpg to view the appropriate program.


A Generic Sorted List ADT

  • Please click on the following link Programs/C03P200.jpg to view the appropriate program.


UML Diagrams for our List Framework


A Listable Class

  • Please click on the following link Programs/C03P204.jpg to view the appropriate program.


Using the Generic List

To Create a sorted list of strings use either of its constructors:

SortedList list1 = new SortedList();

SortedList list2 = new SortedList (size);

Declare at least one object of class ListString

ListString aString;

Instantiate ListString objects and place them on the list.

aString = new ListString(“Amy”);

list.insert(astring)


  • Login