Presentation is loading. Please wait.

Presentation is loading. Please wait.

Problem of the Day Bezout acquired 19 camels through his trading skill, “Of the collected camels,” it said in the late merchant’s will, “Exactly half go.

Similar presentations


Presentation on theme: "Problem of the Day Bezout acquired 19 camels through his trading skill, “Of the collected camels,” it said in the late merchant’s will, “Exactly half go."— Presentation transcript:

1 Problem of the Day Bezout acquired 19 camels through his trading skill, “Of the collected camels,” it said in the late merchant’s will, “Exactly half go to my first son, Abdul, One-fourth to Wasim, one-fifth to Rasul, Call a wise man to distribute — don’t sell or kill.” How does the Wise Man do it?

2 Problem of the Day Bezout acquired 19 camels through his trading skill, “Of the collected camels,” it said in the late merchant’s will, “Exactly half go to my first son, Abdul, One-fourth to Wasim, one-fifth to Rasul, Call a wise man to distribute — don’t sell or kill.” How does the Wise Man do it? The Wise Man adds his own camel (making 20 to distribute) Abdul gets10 (20 * 0.5) Wasim gets 5 (20 * 0.25) Rasul gets 4 (20 * 0.2) & Wise Man gets his camel back (20 – 10 – 5 – 4 = 1)

3 CSC 212 – Data Structures

4 Stack Memory Aid Roses are red and violets are blue Implement push, pop, & top And you’re a Stack too!

5 Stack Interface public interface Stack extends Collection { public E top() throws EmptyStackException; public E pop() throws EmptyStackException; public void push(E element); }

6 Queue Memory Aid

7 It’s hard writing rhymes with enqueue, dequeue, and front

8 Queue Memory Aid

9 public interface Queue extends Collection { public E front() throws EmptyQueueException; public E dequeue() throws EmptyQueueException; public void enqueue(E element); } Queue ADT

10 Stacks vs. Queues

11 Order read if Queue

12 Stacks vs. Queues Order read if Queue Order read if Stack

13  Cannot access both sides of either Collection  Transplant waiting lists  Help center phone banks  My Grandpa dealing cards for money  Stack only works with one end  Add & remove from top of the Stack  Queue limits how each side used  Front provides access & removal of elements  Must use the Queue ’s end to add elements Still Have Limits

14  Pronounced “deck” (like on a house) DEQUE  Mnemonic for Double Ended QUEue  dequeue ≠ deque and do not sound alike  Structure that provides access to both ends  Combines Stack & Queue concepts  Is also able to add elements to start Deque ADT

15 public interface Deque extends Collection { /* front() */ public E getFirst() throws EmptyDequeException; /* top() */ public E getLast() throws EmptyDequeException; /* dequeue() */ public E removeFirst() throws EmptyDequeException; /* pop() */ public E removeLast() throws EmptyDequeException; /* push() or enqueue() */ public addLast(E elem); /* brand new method! */ public addFirst(E elem); } Deque Interface

16 VIPs versus Losers

17  Class defines fields aliased to first & last nodes  Doubly-linked list enables O(1) time for all methods  Add elements by adding new Node at end  Update sentinel’s next or previous to remove element Linked-list based Deque head rear

18  Class defines fields aliased to first & last nodes  Doubly-linked list enables O(1) time for all methods  Add elements by adding new Node at end  Update sentinel’s next or previous to remove element Linked-list based Deque rear retVal head

19  Class defines fields aliased to first & last nodes  Doubly-linked list enables O(1) time for all methods  Add elements by adding new Node at end  Update sentinel’s next or previous to remove element Linked-list based Deque retVal head rear

20  Class defines fields aliased to first & last nodes  Doubly-linked list enables O(1) time for all methods  Add elements by adding new Node at end  Update sentinel’s next or previous to remove element Linked-list based Deque retVal head rear

21  Class defines fields aliased to first & last nodes  Doubly-linked list enables O(1) time for all methods  Add elements by adding new Node at end  Update sentinel’s next or previous to remove element Linked-list based Deque newElem head rear

22  Class defines fields aliased to first & last nodes  Doubly-linked list enables O(1) time for all methods  Add elements by adding new Node at end  Update sentinel’s next or previous to remove element Linked-list based Deque newElem newNode head rear

23  Class defines fields aliased to first & last nodes  Doubly-linked list enables O(1) time for all methods  Add elements by adding new Node at end  Update sentinel’s next or previous to remove element Linked-list based Deque newElem newNode head rear

24  Class defines fields aliased to first & last nodes  Doubly-linked list enables O(1) time for all methods  Add elements by adding new Node at end  Update sentinel’s next or previous to remove element Linked-list based Deque head rear

25  D EQUES, like Q UEUES, have both ends move f  addFirst & removeFirst moves its f ront index  r  r ear index moved by addLast & removeLast  Ends of a array-based D EQUE like clock time  Identical to Queue and how it works, except…  …occasionally need to subtract from index, also Circular Access q f r

26  D EQUES, like Q UEUES, have both ends move f  addFirst & removeFirst moves its f ront index  r  r ear index moved by addLast & removeLast  Ends of a array-based D EQUE like clock time  Identical to Queue and how it works, except…  …occasionally need to subtract from index, also Circular Access q f r

27  D EQUES, like Q UEUES, have both ends move f  addFirst & removeFirst moves its f ront index  r  r ear index moved by addLast & removeLast  Ends of a array-based D EQUE like clock time  Identical to Queue and how it works, except…  …occasionally need to subtract from index, also Circular Access q f r

28  D EQUES, like Q UEUES, have both ends move f  addFirst & removeFirst moves its f ront index  r  r ear index moved by addLast & removeLast  Ends of a array-based D EQUE like clock time  Identical to Queue and how it works, except…  …occasionally need to subtract from index, also Circular Access q f r

29  D EQUES, like Q UEUES, have both ends move f  addFirst & removeFirst moves its f ront index  r  r ear index moved by addLast & removeLast  Ends of a array-based D EQUE like clock time  Identical to Queue and how it works, except…  …occasionally need to subtract from index, also Circular Access q f r

30  D EQUES, like Q UEUES, have both ends move f  addFirst & removeFirst moves its f ront index  r  r ear index moved by addLast & removeLast  Ends of a array-based D EQUE like clock time  Identical to Queue and how it works, except…  …occasionally need to subtract from index, also Circular Access q f r

31  D EQUES, like Q UEUES, have both ends move f  addFirst & removeFirst moves its f ront index  r  r ear index moved by addLast & removeLast  Ends of a array-based D EQUE like clock time  Identical to Queue and how it works, except…  …occasionally need to subtract from index, also Circular Access q f r

32  D EQUES, like Q UEUES, have both ends move f  addFirst & removeFirst moves its f ront index  r  r ear index moved by addLast & removeLast  Ends of a array-based D EQUE like clock time  Identical to Queue and how it works, except…  …occasionally need to subtract from index, also Circular Access q f r

33  D EQUES, like Q UEUES, have both ends move f  addFirst & removeFirst moves its f ront index  r  r ear index moved by addLast & removeLast  Ends of a array-based D EQUE like clock time  Identical to Queue and how it works, except…  …occasionally need to subtract from index, also Circular Access q f r

34  D EQUES, like Q UEUES, have both ends move f  addFirst & removeFirst moves its f ront index  r  r ear index moved by addLast & removeLast  Ends of a array-based D EQUE like clock time  Identical to Queue and how it works, except…  …occasionally need to subtract from index, also Circular Access q f r

35  D EQUES, like Q UEUES, have both ends move f  addFirst & removeFirst moves its f ront index  r  r ear index moved by addLast & removeLast  Ends of a array-based D EQUE like clock time  Identical to Queue and how it works, except…  …occasionally need to subtract from index, also Circular Access q f r

36  D EQUES, like Q UEUES, have both ends move f  addFirst & removeFirst moves its f ront index  r  r ear index moved by addLast & removeLast  Ends of a array-based D EQUE like clock time  Identical to Queue and how it works, except…  …occasionally need to subtract from index, also Circular Access q f r

37 Array-based D EQUE Operations  Uses property of clock math  Remainder of result is all that matters  But the values sign is also important  -1 % 4 == -1, for example

38 Array-based D EQUE Operations  To get this to work, use a cheap trick  Adding size of the array does not change result (-1 + 6) % 6 (3 + 6) % 6 = 5 % 6= 9 % 6 = 5= 3

39 Your Turn  Get into your groups and complete activity

40 For Next Lecture  Midterm #2  Midterm #2 will be in class on Wednesday


Download ppt "Problem of the Day Bezout acquired 19 camels through his trading skill, “Of the collected camels,” it said in the late merchant’s will, “Exactly half go."

Similar presentations


Ads by Google