Checkout DataStructures from SVN Understanding the engineering - - PowerPoint PPT Presentation

checkout datastructures from svn understanding the
SMART_READER_LITE
LIVE PREVIEW

Checkout DataStructures from SVN Understanding the engineering - - PowerPoint PPT Presentation

Data-structure-palooza Checkout DataStructures from SVN Understanding the engineering trade-offs when storing data Boil down data types (e.g., lists) to their essential operations Choosing a data structure for a project then becomes:


slide-1
SLIDE 1

Data-structure-palooza

Checkout DataStructures from SVN

slide-2
SLIDE 2
slide-3
SLIDE 3

Understanding the engineering trade-offs when storing data

slide-4
SLIDE 4

 Boil down data types (e.g., lists) to their

essential operations

 Choosing a data structure for a project then

becomes:

  • Identify the operations needed
  • Identify the abstract data type that most efficiently

supports those operations

 Goal: that you understand several basic

abstract data types and when to use them

slide-5
SLIDE 5

 Array List  Linked List  Stack  Queue  Set  Map

Implementations for all of these are provided by the Java Collections Framework in the java.util package.

slide-6
SLIDE 6

Ope pera ratio ions Prov

  • vide

ided Arra rray L Lis ist Effici cien ency cy Linke ked L d List t Effici cien ency cy Random access O(1) O(n) Add/remove item O(n) O(1)

slide-7
SLIDE 7

 A last-in, first-out (LIFO) data structure  Real-world stacks

  • Plate dispensers in the cafeteria
  • Pancakes!

 Some uses:

  • Tracking paths through a maze
  • Providing “unlimited undo” in an application

Ope pera ratio ions Prov

  • vide

ided Effici cien ency cy Push item O(1) Pop item O(1)

Implemented by Stac Stack, LinkedList kedList, and ArrayDeque ayDeque in Java

Q1

slide-8
SLIDE 8

 A first-in, first-out (FIFO) data structure  Real-world queues

  • Waiting line at the BMV
  • Character on Star Trek TNG

 Some uses:

  • Scheduling access to shared resource (e.g., printer)

Operati tion

  • ns P

Prov

  • vide

ided Effici cien ency cy Add (enqueue, offer) item O(1) Remove (dequeue, poll) item O(1) Implemented by LinkedList and ArrayDeque in Java

Q2

slide-9
SLIDE 9

Binary Tree Hash Table

 Use if you need the

items to be sorte

  • rted

 Log(n) height of tree  Uses “hash code”  O(1) to lookup, add or

remove

sam am joe

  • e

ty ty, ali li …

slide-10
SLIDE 10

 Collections with

ithou

  • ut duplicates

ates

 Real-world sets

  • Students
  • Collectibles

 Some uses:

  • Quickly checking if an item is in a collection

 Sorted? Depends on implementation!

Ope pera ratio ions Ha Hash shSet Tr TreeS eeSet et Add/remove item O(1) O(log n) Contains? O(1) O(log n)

Can hog space Sorts items!

Q3

slide-11
SLIDE 11

 Associate keys

ys with values es

 Real-world “maps”

  • Dictionary
  • Phone book

 Some uses:

  • Associating student ID with transcript
  • Associating name with high scores

Ope pera ratio ions HashMa hMap Tr TreeM eeMap ap Insert key-value pair O(1) O(lg n) Look up value for key O(1) O(lg n) Can hog space

Sorts items by key!

Q4

slide-12
SLIDE 12

Binary Tree Hash Table

 Use if you need the

items to be sorte

  • rted

 Log(n) height of tree  Uses “hash code”  O(1) to lookup, add or

remove

sam am joe

  • e

ty ty, ali li …

slide-13
SLIDE 13

Your chance to improve instruction, courses, and curricula.

slide-14
SLIDE 14

Q5 - 6