java-classes-in-mumbai-Abstract-data-type-chapter - PowerPoint PPT Presentation

About This Presentation
Title:

java-classes-in-mumbai-Abstract-data-type-chapter

Description:

We are the best Java training provider in Navi Mumbai who provides Live Projects to students.We provide Corporate Training also.We are Best Java classes in Mumbai according to our students and corporators – PowerPoint PPT presentation

Number of Views:20

less

Transcript and Presenter's Notes

Title: java-classes-in-mumbai-Abstract-data-type-chapter


1
(No Transcript)
2
Abstract Data Types
Chapter 3
3
Data Structures
  • Data structure is a representation of data and
    the operations allowed on that data.

4
Abstract Data Types
  • In Object Oriented Programming data and the
    operations that manipulate that data are grouped
    together in classes
  • Abstract Data Types (ADTs) or data structures or
    collections store data and allow various
    operations on the data to access and change it

5
Why Abstract?
  • Specify the operations of the data structure and
    leave implementation details to later
  • in Java use an interface to specify operations
  • many, many different ADTs
  • picking the right one for the job is an important
    step in design
  • "Get your data structures correct first, and the
    rest of the program will write itself."           
        -Davids Johnson
  • High level languages often provide built in ADTs,
  • the C STL, the Java standard library

6
The Core Operations
  • Every Collection ADT should provide a way to
  • add an item
  • remove an item
  • find, retrieve, or access an item
  • Many, many more possibilities
  • is the collection empty
  • make the collection empty
  • give me a sub set of the collection
  • and on and on and on
  • Many different ways to implement these items each
    with associated costs and benefits

7
Implementing ADTs
  • when implementing an ADT the operations and
    behaviors are already specified
  • think Java interface
  • Implementers first choice is what to use as the
    internal storage container for the concrete data
    type
  • the internal storage container is used to hold
    the items in the collection
  • often an implementation of an ADT
  • initially slim pickings for choice of storage
    containers arrays anyone?

8
The Grand Tour
  • Why study ADTs?
  • Why reimplement some of them?
  • How many of you will actually go out and create
    your own linked list ADT from scratch?
  • Remember, the primary goal is to learn how to
    learn how to use and create ADTs
  • also learn the behavior of some of the more
    conventional ADTs

9
Bags and Sets
  • Simplest ADT is a Bag
  • items can be added, removed, accessed
  • no implied order to the items
  • duplicates allowed
  • Set
  • same as a bag, except duplicate elements not
    allowed
  • union, intersection, difference, subset

10
Lists
  • Items have a position in this Collection
  • Random access or not?
  • Array Lists
  • internal storage container is native array
  • Linked Lists
  • public class Node
  • private Object data
  • private Node next

last
first
11
Stacks
  • Collection with access only to the last element
    inserted
  • Last in first out
  • insert/push
  • remove/pop
  • top
  • make empty

Top
Data4
Data3
Data2
Data1
12
Queues
  • Collection with access only to the item that has
    been present the longest
  • Last in last out or first in first out
  • enqueue, dequeue, front
  • priority queues and deque

Front
Back
Data4
Data3
Data2
Data1
13
Stacks and Queues in the Java Collection API
  • No queue in the Java collections ADT
  • Stack extends Vector (which is almost exactly
    like ArrayList)
  • Hmmm?
  • One reason the Java Collections Library is often
    said to be broken
  • no Queue in Collection API

14
Trees
  • Similar to a linked list
  • public class TreeNode
  • private Object data
  • private TreeNode left
  • private TreeNode right

Root
15
Other Types of Trees
  • Binary Search Trees
  • sorted values
  • Heaps
  • sorted via a different algorithm
  • AVL and Red-Black Trees
  • binary search trees that stay balanced
  • Splay Trees
  • B Trees

16
HashTables
  • Take a key, apply function
  • f(key) hash value
  • store data or object based on hash value
  • Sorting O(N), access O(1) if a perfect hash
    function and enough memory for table
  • how deal with collisions?

17
The Java Collection Interface
  • boolean isEmpty()
  • int size()
  • boolean add(Object x)
  • boolean contains(Object x)
  • boolean remove(Object x)
  • void clear()
  • Object toArray()
  • Iterator iterator()

18
Generic Containers
  • ADTs or Collection classes should be generic
  • only write them once, hold lots or all types of
    data
  • Java achieves genericity through inheritance and
    polymorphism
  • ADTs have an internal storage container
  • What is storing the stuff,
  • implementation vs. abstraction
  • in Java, usually holds Objects. Why?

19
(No Transcript)
20
Example - ArrayList
21
Thank You!!!
Write a Comment
User Comments (0)
About PowerShow.com