Data Structures Using Java1 Chapter 3 Array-Based Lists.

Slides:



Advertisements
Similar presentations
Chapter 22 Implementing lists: linked implementations.
Advertisements

Chapter 23 Organizing list implementations. This chapter discusses n The notion of an iterator. n The standard Java library interface Collection, and.
Chapter 21 Implementing lists: array implementation.
Queues Printer queues Several jobs submitted to printer Jobs form a queue Jobs processed in same order as they were received.
Why not just use Arrays? Java ArrayLists.
11 Copyright © 2005, Oracle. All rights reserved. Using Arrays and Collections.
Alice in Action with Java Chapter 6 Events. Alice in Action with Java2 Objectives Create new events in Alice Create handler methods for Alice events Use.
Stacks, Queues, and Linked Lists
Linear Lists – Array Representation
DATA STRUCTURES USING C++ Chapter 5
Linked Lists Linear collections.
AITI Lecture 19 Linked List Adapted from MIT Course 1.00 Spring 2003 Lecture 26 and Tutorial Note 9 (Teachers: Please do not erase the above note)
Dr. Liu1 Chapter 3 Array-Based Lists. Dr. Liu2 Chapter Objectives Learn about lists Explore how various operations, such as search, insert, and remove,
Chapter 10: Applications of Arrays and Strings J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second.
ArrayLists The lazy mans array. Whats the matter here? int[] list = new int[10]; list[0] = 5; list[2] = hey; list[3] = 15; list[4] = 23;
Generics, Lists, Interfaces
Data Structures Using Java1 Chapter 1 Software Engineering Principles and Java Classes.
JAVA1 1. JFrame. JAVA2 JApplet import java.awt.*; import java.awt.event.*; import javax.swing.*; public class HerhalingAppletH10 extends JApplet implements.
Array-Based Lists List Length of a list
Data Structures A data structure is a collection of data organized in some fashion that permits access to individual elements stored in the structure This.
Chapter 1 Object-Oriented Concepts. A class consists of variables called fields together with functions called methods that act on those fields.
Chapter 6 The Collections API. Simple Container/ Iterator Simple Container Shape [] v = new Shape[10]; Simple Iterator For( int i=0 ; i< v.length ; i++)
Templates in C++ Template function in C++ makes it easier to reuse classes and functions. A template can be viewed as a variable that can be instantiated.
Queues1 Part-B2 Queues. Queues2 The Queue ADT (§4.3) The Queue ADT stores arbitrary objects Insertions and deletions follow the first-in first-out scheme.
Chapter 15: Generic Methods, Classes, and Array-Based Lists
Collections Sets - no duplicates Lists - duplicates allowed Maps - key / value pairs A collection is an Object which contains other Objects. There are.
Slides prepared by Rose Williams, Binghamton University Chapter 14 Generics and the ArrayList Class.
1 L41 Collections (1). 2 OBJECTIVES  What collections are.  To use class Arrays for array manipulations.  To use the collections framework (prepackaged.
List Implementations That Use Arrays Chapter 5. 2 Chapter Contents Using a Fixed-Size Array to Implement the ADT List An Analogy The Java Implementation.
Data Structures Using Java1 Chapter 8 Search Algorithms.
Stacks. 2 Outline and Reading The Stack ADT (§2.1.1) Array-based implementation (§2.1.1) Growable array-based stack (§1.5) Java.util.Stack class Java.util.Vector.
CHAPTER 6 Stacks Array Implementation. 2 Stacks A stack is a linear collection whose elements are added and removed from one end The last element to be.
CHAPTER 6 Stacks. 2 A stack is a linear collection whose elements are added and removed from one end The last element to be put on the stack is the first.
1 Foundations of Software Design Fall 2002 Marti Hearst Lecture 13: Queues and Vectors.
Data Structures Using C++ 2E
Data Structures Using C++ 2E Chapter 3 Pointers and Array-Based Lists.
Pointer Data Type and Pointer Variables
Data Structures Using C++ 2E Chapter 3 Pointers and Array-Based Lists.
Data Structures Using Java1 Chapter 8 Search Algorithms.
Data Structures Using C++1 Chapter 9 Search Algorithms.
Chapter 10 Applications of Arrays and Strings. Chapter Objectives Learn how to implement the sequential search algorithm Explore how to sort an array.
Applications of Arrays (Searching and Sorting) and Strings
ArrayList, Multidimensional Arrays
Lists Ellen Walker CPSC 201 Data Structures Hiram College.
Chapter 11 Arrays Continued
Chapter 14: Searching and Sorting
ArrayList Class An ArrayList is an object that contains a sequence of elements that are ordered by position. An ArrayList is an object that contains a.
Chapter 5 Array-Based Structures © 2006 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.
Sets and Maps Computer Science 4 Mr. Gerb Reference: Objective: Understand the two basic applications of searching.
U n i v e r s i t y o f H a i l 1 ICS 202  2011 spring  Data Structures and Algorithms 
What is a List? A list is a homogeneous collection of elements, with a linear relationship between elements. Each list element (except the first) has a.
Chapter 3 Pointers and Array-Based Lists Dr. Youssef Harrath
Chapter 10: Class Vector and String, and Enumeration Types Java Programming: Program Design Including Data Structures Program Design Including Data Structures.
JAC444: Intro to Java Arrays and Vectors Tim McKenna
Collections Dwight Deugo Nesa Matic
C19: Collection Classes (don’t forget to look at all the online code examples)
C++ Programming: Program Design Including Data Structures, Fourth Edition Chapter 17: Linked Lists.
C++ Programming: From Problem Analysis to Program Design, Fourth Edition Chapter 18: Linked Lists.
Chapter 12: Pointers, Classes, Virtual Functions, Abstract Classes, and Lists.
Click to edit Master text styles Stacks Data Structure.
Section 2.3 Array-Based StringLog ADT Implementation.
Stacks.
Queues 11/9/2018 6:28 PM Queues 11/9/2018 6:28 PM Queues.
Queues 11/16/2018 4:19 AM Queues 11/16/2018 4:19 AM Queues.
Queues: Implemented using Arrays
Collections Not in our text.
Collections Framework
Array-Based Lists & Pointers
General List.
Presentation transcript:

Data Structures Using Java1 Chapter 3 Array-Based Lists

Data Structures Using Java2 Chapter Objectives Learn about lists Explore how various operations, such as search, insert, and remove, on lists are implemented Learn how to design and implement a generic class to process various types of lists Become aware of the class Vector

Data Structures Using Java3 Array-Based Lists List: A collection of elements of the same type Length of list is number of elements in list

Data Structures Using Java4 Operations Performed on a List Create the list: initialize to an empty state Determine whether the list is empty Determine whether the list is full Find the size of the list Destroy (clear) the list Determine whether an item is the same as a given list element

Data Structures Using Java5 Operations Performed on a List Insert an item in the list at the specified location Remove an item from the list at the specified location Replace an item at the specified location with another item Retrieve an item from the list at the specified location Search the list for a given item

Data Structures Using Java6 Type of List Elements class Object directly or indirectly becomes a superclass of every Java class, user defined or built in Reference variable of Object type can refer to any object of any class class DataElement, superclass of every class specifying data type of list elements Abstract methods of class DataElement: equals, compareTo, makeCopy, and getCopy

Data Structures Using Java7 Type of List Elements

Data Structures Using Java8 Type of List Elements class IntElement used when list of integers is manipulated class DoubleElement used when list of decimal numbers is manipulated class StringElement, designed in chapter, used when list of strings is manipulated

Data Structures Using Java9 class IntElement

Data Structures Using Java10 class StringElement

Data Structures Using Java11 class ArrayListClass An abstract class Is superclass of the classes that implement a list Has three instance variables –length: specifies the number of elements currently in the list –maxSize: specifies the maximum number of elements that can be processed by the list –list: an array of reference variables

Data Structures Using Java12 class ArrayListClass

Data Structures Using Java13 Definitions of Nonabstract Methods of ArrayListClass public boolean isEmpty() { return (length == 0); } public boolean isFull() { return (length == maxSize); } public int listSize() { return length; } public int maxListSize() { return maxSize; }

Data Structures Using Java14 Definitions of Nonabstract Methods of ArrayListClass public void print() { for(int i = 0; i < length; i++) System.out.print(list[i] + ); System.out.println(); } public boolean isItemAtEqual(int location, DataElement item) { return (list[location].equals(item)); }

Data Structures Using Java15 Definitions of Nonabstract Methods of ArrayListClass public void insertAt(int location, DataElement insertItem) { if(location = maxSize) System.err.println(The position of the item to + be inserted is out of range); else if(length >= maxSize) //list is full System.err.println(Cannot insert in a full list.); else { for(int i = length; i > location; i--) list[i] = list[i - 1]; //move the elements down list[location] = insertItem.getCopy(); //insert the //item at the specified position length++; //increment the length } }//end insertAt

Data Structures Using Java16 Definitions of Nonabstract Methods of ArrayListClass public void insertEnd(DataElement insertItem) { if(length >= maxSize) //the list is full System.err.println(Cannot insert in a full list.); else { list[length] = insertItem.getCopy(); //insert item //at end length++; //increment the length } }//end insertEnd

Data Structures Using Java17 Definitions of Nonabstract Methods of ArrayListClass public void removeAt(int location) { if(location = length) System.err.println(The location of the item to + be removed is out of range.); else { for(int i = location; i < length - 1; i++) list[i] = list[i + 1]; list[length - 1] = null; length--; } }//end removeAt

Data Structures Using Java18 Definitions of Nonabstract Methods of ArrayListClass public DataElement retrieveAt(int location) { if(location = length) { System.err.println("The location of the item to be " + "retrieved is out of range."); return null; } else return list[location].getCopy(); }//end retrieveAt

Data Structures Using Java19 Definitions of Nonabstract Methods of ArrayListClass public void replaceAt(int location, DataElement repItem) { if(location = length) System.err.println(The location of the item to + be replaced is out of range.); else list[location].makeCopy(repItem); }//end replaceAt public void clearList() { for(int i = 0; i < length; i++) list[i] = null; length = 0; System.gc(); }//end clearList

Data Structures Using Java20 Definition of ArrayListClass public abstract class ArrayListClass { protected int length; //to store the length //of the list protected int maxSize; //to store the maximum //size of the list protected DataElement[] list; //array to hold //list elements //Place the definitions of the instance // methods and abstract methods here. }

Data Structures Using Java21 Unordered List class UnorderedArrayList is a subclass of the class ArrayListClass Elements are not necessarily sorted class UnorderedList implements operations search, insert, and remove

Data Structures Using Java22 class UnorderedArrayList

Data Structures Using Java23 Search Necessary components to search a list: –Array containing the list –Length of the list –Item for which you are searching After search completed: –If item found, report success, return location in array –If item not found, report failure

Data Structures Using Java24 Search public int seqSearch(DataElement searchItem) { int loc; boolean found = false; for(loc = 0; loc < length; loc++) if(list[loc].equals(searchItem)) { found = true; break; } if(found) return loc; else return -1; }//end seqSearch

Data Structures Using Java25 Insert and Remove Insert –Inserts a new item in the list –Uses method seqSearch to determine whether insertItem is already in list Remove –deletes an item from the list –uses the methods seqSearch and removeAt to remove an item from the list

Data Structures Using Java26 Insert public void insert(DataElement insertItem) { int loc; if(length == 0) //list is empty list[length++] = insertItem; //insert the item and //increment the length else if(length == maxSize) System.err.println(Cannot insert in a full list.); else { loc = seqSearch(insertItem); if(loc == -1) //the item to be inserted //does not exist in the list list[length++] = insertItem.getCopy(); else System.err.println(The item to be inserted is + already in the list. No + duplicates are allowed.); } }//end insert

Data Structures Using Java27 Remove public void remove(DataElement removeItem) { int loc; if(length == 0) System.err.println(Cannot delete from an empty list.); else { loc = seqSearch(removeItem); if(loc != -1) removeAt(loc); else System.out.println(The item to be deleted is + not in the list.); } }//end remove

Data Structures Using Java28 Time Complexity of List Operations

Data Structures Using Java29 Vectors Class Vector can be used to implement a list Unlike array, size of Vector object can grow/shrink during program execution Do not need to worry about number of data elements in vector

Data Structures Using Java30 Members of the class Vector protected int elementCount; protected Object[] elementData; public Vector() public Vector (int size) public void addElement (Object insertObj) public void insertElementAt (Object insertObj, int index) public Object clone ( ) public boolean contains (Object obj)

Data Structures Using Java31 Members of the class Vector public void copyInto (Object[] dest) public Object elementAt (int index) public Object firstElement () public Object lastElement () public int indexOf (Object obj) public int indexOf (Object obj, int index) public boolean isEmpty () public int lastIndexOf (Object obj)

Data Structures Using Java32 Members of the class Vector public int lastIndexOf (Object item, int index) public void removeAllElements ( ) public boolean removeElement (Object obj) public void removeElementAt (int index) public void setElementAt (Object obj, int index) public int size ( ) public String toString ( )

Data Structures Using Java33 Vectors Every element of Vector object is reference variable of type Object To add element into Vector object –Create appropriate object –Store data into object –Store address of object holding data into Vector object element

Data Structures Using Java34 Vector StringList stringList.addElement(Spring); stringList.addElement(Summer); stringList.addElement(Fall); stringList.addElement(Winter);

Data Structures Using Java35 Vector StringList stringList.addElement(Cool, 1);

Data Structures Using Java36 Programming Example: Polynomials Purpose: To design and implement the class Polynomial to perform various polynomial operations in a program Program implements the following polynomial operations: 1. Evaluate a polynomial at a given value 2. Add polynomials 3. Subtract polynomials 4. Multiply polynomials

Data Structures Using Java37 Programming Example: Polynomials

Data Structures Using Java38 Programming Example: Polynomials

Data Structures Using Java39 Chapter Summary Operations performed on a list Type of list elements Abstract class DataElement Classes IntElement, DoubleElement, StringElement class ArrayListClass –Definitions of Nonabstract Methods of ArrayListClass –Definition of ArrayListClass

Data Structures Using Java40 Chapter Summary Unordered List Class UnorderedArrayList –Implementations of search, insert and remove Time Complexity of List Operations Vectors –Members of the class Vector Programming examples