Download presentation

Presentation is loading. Please wait.

Published byEaston Hindson Modified over 2 years ago

1
CSC 212 – Data Structures Lecture 22: PositionList

2
Question of the Day On a game show you’re given the choice of three doors: Behind one door is a car; behind the others, goats. After you pick a door, the host, opens another door which has a goat. He then asks, "Do you change your selection?” Should you?

3
List ADT Accesses all elements in a Collection Add new element before existing one Get the 3 rd element in the Collection Loop over all elements without removing them Cannot be done with Stack, Queue & Deque List ADTs differ how they provide access

4
IndexList != array Extends idea of an array, but… Does not have constant size Elements’ ranks may change over time Abstracts away implementation details Could be done using college students!

5
Insertion add( r, e ) “shifts” elements to make space Can take O(n) time True for array or linked list implementation S 012n r S 012n r S 012n e r

6
Deletion remove( r ) “shifts” remaining elements to fill hole Also takes O(n) time S 012n r S 012n r S 012n r

7
PositionList ADT Abstracts idea of a linked list No ranks or numerical ordering of data Access elements in relative terms Work from first() & last() elements in list Travel to next() & prev() elements Insert elements based on relative location addFirst(e), addLast(e) -- add e as expected addBefore(p,e), addAfter(p,e) -- add e relative to the existing position p remove() & set() works as normal

8
insertAfter(p, X) ABXC ABC p ABC p X p headertrailer headertrailer header

9
remove(p) ABC p headertrailer X ABC headertrailer ABXC p header

10
PositionList Problem For speed, want to use actual Nodes Implementation may use trained monkeys Do not want to expose implementation details Solution: use Position Interface public interface Position { public E element(); } Node class can implement Position But so can other classes Hides exact implementation details

11
Converting Position to Node private Node checkPosition(Position p) throws InvalidPositionException { if (p == null) { throw new InvalidPositionException(); } if (!(p instanceof Node)) { throw new InvalidPositionException(); } return (Node )p; }

12
Your Turn Get back into groups and do activity

13
Before Next Lecture… Keep up with your reading! Finish Week #9 Assignment Work on Programming Assignment #2

Similar presentations

Presentation is loading. Please wait....

OK

LECTURE 36: DICTIONARY CSC 212 – Data Structures.

LECTURE 36: DICTIONARY CSC 212 – Data Structures.

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on machine translation services Ppt on acid-base indicators ppt Download ppt on my role model Ppt on regular expression validator Ppt on business process management Ppt on history of olympics locations Ppt on computer virus symptoms Ppt on world diabetes day 2016 Convert word file to ppt online Ppt on united nations agencies