Linked List Implementation Data-structure-palooza Introduction to - - PowerPoint PPT Presentation

linked list implementation data structure palooza
SMART_READER_LITE
LIVE PREVIEW

Linked List Implementation Data-structure-palooza Introduction to - - PowerPoint PPT Presentation

Linked List Implementation Data-structure-palooza Introduction to Markov Chaining Checkout LinkedLists project from SVN Understanding the engineering trade-offs when storing data Efficient ways to store data based on how well use it


slide-1
SLIDE 1

Linked List Implementation Data-structure-palooza Introduction to Markov Chaining

Checkout LinkedLists project from SVN

slide-2
SLIDE 2
slide-3
SLIDE 3

Understanding the engineering trade-offs when storing data

slide-4
SLIDE 4

 Efficient ways to store data based on how

we’ll use it

 The main theme for the last 1/6 of the course  So far we’ve seen ArrayLists

  • Fast addition to end of list

st

  • Fast access to any existing position
  • Slow inserts to and deletes from middle of list
slide-5
SLIDE 5

 What if we have to add/remove data from a

list frequently?

 LinkedLists support this:

  • Fast insertion and removal of elements

 Once we know where they go

  • Slow access to arbitrary elements

“random access”

slide-6
SLIDE 6

 void addFirst(E element)  void addLast(E element)  E getFirst()  E getLast()  E removeFirst()  E removeLast()  What about accessing the middle of the list?

  • LinkedList<E> implements Iterable<E>
slide-7
SLIDE 7
slide-8
SLIDE 8

Enhanced For Loop What Compiler Generates

for (String s : list) { // do something } Iterator<String> iter = list.iterator(); while (iter.hasNext()) { String s = iter.next(); // do something }

slide-9
SLIDE 9

 A simplified version, with just the essentials  Won’t implement the java.util.List interface  Will have the usual linked list behavior

  • Fast insertion and removal of elements

 Once we know where they go

  • Slow random access
slide-10
SLIDE 10

The only blood these contracts are signed in is from me cutting my hand trying to open the d@^mned CD case.

slide-11
SLIDE 11

 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 efficient

supports those operations

 Goal: that you understand several basic

abstract data types and when to use them

slide-12
SLIDE 12

 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. Q1

slide-13
SLIDE 13

Op Operati ations

  • ns

Prov

  • vide

ided Array List Efficie cienc ncy Linke nked d List Efficie cienc ncy Random access O(1) O(n) Add/remove item O(n) O(1) Q1

slide-14
SLIDE 14

 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

Op Operati ations

  • ns

Prov

  • vide

ided Efficie cienc ncy Push item O(1) Pop item O(1)

Implemented by Stack, LinkedList, and ArrayDeque in Java

Q1

slide-15
SLIDE 15

 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)

Op Operati ations

  • ns

Prov

  • vide

ided Efficie cienc ncy Enqueue item O(1) Dequeue item O(1)

Implemented by LinkedList and ArrayDeque in Java

Q1

slide-16
SLIDE 16

 Unorder

rdered ed collections wi without t duplic icate ates

 Real-world sets

  • Students
  • Collectibles

 Some uses:

  • Quickly checking if an item is in a collection

Op Operati ations

  • ns

HashS hSet et Tr TreeSet Add/remove item O(1) O(lg n) Contains? O(1) O(lg n)

Can hog space Sorts items!

Q1

slide-17
SLIDE 17

 Associate keys with va

values es

 Real-world “maps”

  • Dictionary
  • Phone book

 Some uses:

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

Op Oper erati ations

  • ns

Has ashM hMap ap Tr Tree 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!

Q1

slide-18
SLIDE 18

Demonstration

slide-19
SLIDE 19

 Input: a text file

the skunk jumped over the stump the stump jumped over the skunk the skunk said the stump stunk and the stump said the skunk stunk

 Output: a randomly

generated list of words that is “like” the original input in a well-defined way

slide-20
SLIDE 20

 Gather statistics on word patterns by building

an appropriate data structure

 Use the data structure to generate random

text that follows the discovered patterns

slide-21
SLIDE 21

 Input: a text file

the e skunk nk jumped mped ove ver the stump the e stump p jumped mped ove ver the skunk nk the e skunk nk said the stump mp stunk k and d the stump mp said the skunk nk stunk nk Prefix Suffix ffixes NONWORD the the skunk (4), stump (4) skunk jumped, said, stunk, the jumped

  • ver (2)
  • ver

the (2) stump jumped, said, stunk, the said the (2) stunk and, NONWORD and the

slide-22
SLIDE 22

 Input: a text file

the e skunk nk jumped mped ove ver the stump the e stump p jumped mped ove ver the skunk nk the e skunk nk said the stump mp stunk k and d the stump mp said the skunk nk stunk nk Prefi fix Suffixe fixes NW NW the NW the skunk the skunk jumped, said, the, stunk skunk jumped

  • ver

jumped over the

  • ver the

stump, skunk the stump the, jumped, stunk, said …

slide-23
SLIDE 23

 n=1:

the skunk the skunk jumped over the skunk stunk the skunk stunk

 n=2:

the skunk said the stump stunk and the stump jumped over the skunk jumped

  • ver the skunk stunk

 Note: it’s also

possible to hit the max before you hit the last nonword.

slide-24
SLIDE 24

 For the prefixes?  For the set of suffixes?  To relate them?

Prefi fix Suffixe fixes NW NW the NW the skunk the skunk jumped, said, the, stunk skunk jumped

  • ver

jumped over the

  • ver the

stump, skunk the stump the, jumped, stunk, said …

slide-25
SLIDE 25

 Let me know whether you want to:

  • Work alone on Markov project
  • Work in a pair on Markov project

 And if so, have you found a partner or would you like me to pair you with someone