Presentation is loading. Please wait.

Presentation is loading. Please wait.

Problem of the Day  At low tide, a ship docks in the harbor  Ship is 9’ above the water line when it docks  Over the side hangs a rope ladder w/ rungs.

Similar presentations


Presentation on theme: "Problem of the Day  At low tide, a ship docks in the harbor  Ship is 9’ above the water line when it docks  Over the side hangs a rope ladder w/ rungs."— Presentation transcript:

1 Problem of the Day  At low tide, a ship docks in the harbor  Ship is 9’ above the water line when it docks  Over the side hangs a rope ladder w/ rungs 1’ apart  Tide rises at a rate of 9” per hour After 6 hours what length of ladder will still be above water?

2 Problem of the Day  At low tide, a ship docks in the harbor  Ship is 9’ above the water line when it docks  Over the side hangs a rope ladder w/ rungs 1’ apart  Tide rises at a rate of 9” per hour After 6 hours what length of ladder will still be above water? 9’ – the ladder will rise with the boat!

3 CSC 212 – Data Structures

4 Priority Queue  Priority queue uses strict ordering of data  Values assigned priority when added to the queue completely biased order  Priorities used to process in completely biased order  Return element only from find() & remove()

5 P RIORITY Q UEUE Operations D EQUE Q UEUE P RIORITY Q UEUE addFirst() addLast() enqueue()addElement() peekFirst() peekLast() first()find() removeFirst() removeLast() dequeue()remove()

6 Elements in a PriorityQueue  PriorityQueues use more to hold data  Details not specified, implementations may differ  Data stored has 2 items defining how it is used  PQ will only use priority – the importance of element  Element important data program actually cares about

7 Is P RIORITY Q UEUE Linear?  PriorityQueue yet another Collection  Prioritize each element contained in the collection  PQ is organized from lowest to highest priority  Implementation not required: this could be ADT  Often use H EAP (it is faster) & order is theoretical

8 Is P RIORITY Q UEUE Linear?  PriorityQueue yet another Collection  Prioritize each element contained in the collection  PQ is organized from lowest to highest priority  Implementation not required: this could be ADT  Often use H EAP (it is faster) & order is theoretical

9 Is P RIORITY Q UEUE Linear?

10 Heaps  Binary-tree implementation with add & remove  Still structured using parent-child relationship  At most 2 children & 1 parent for each node in tree  Heaps must also satisfy 2 additional properties  Parent’s value smaller than its children’s values  Structure must form a complete binary tree 2 95 67

11 Complete Binary Tree  Specific way to organize a BinaryTree  Add & remove location defined so can be discussed  For this idea, trees must maintain specific shape  Fill lowest level first, then can start new level below it  Lowest level must be filled in from left-to-right Legal 2 95 67 Illegal 2 95 67

12 Reheapify Up  Insertion may violate heap-order property  Reheapify immediately after adding new element  Goes from new node to restore heap’s order  Compare priority of node & its parent  If out of order, swap node's elements  Continue reheapify with parent node  Stop only when either case occurs:  Found properly ordered node & parent  Binary tree's root is reached

13 Reheapify Down  removeMin() removes & returns root’s element  Must remove last node to remain complete tree  Last added node’s element swapped with root’s  Then remove node from the complete tree  Reheapify process restores heap’s order  Starts at root and works down heap  If out-of-order, swap with smaller child  Stop at leaf or when node is legal

14 BinaryTree  Picturing LinkedBinaryTree B  BAC Linked BinaryTree root size  4 D A C  D

15 BinaryTree  Picturing LinkedHeap B   BAC LinkedHeap root size  4 D A C  D

16 Nodes in a LinkedHeap B   BAC D A C  D

17 B References in a LinkedHeap B   D A C  AC D

18 Trees Recursion A B D C G H E F I J K

19 recursive  Common pattern for recursive methods in Java: public static int factorial(int i) { if (i <= 1) { return 1; } else { int nextI = i – 1; int result = factorial(nextI); return i * result; } } Writing Recursive Methods

20 recursive  Common pattern for recursive methods in Java: public static int factorial(int i) { if (i <= 1) { return 1; } else { int nextI = i – 1; int result = factorial(nextI); return i * result; } } Writing Recursive Methods Base case: Start with check for base case

21 recursive  Common pattern for recursive methods in Java: public static int factorial(int i) { if (i <= 1) { return 1; } else { int nextI = i – 1; int result = factorial(nextI); return i * result; } } Writing Recursive Methods Base case: Solution is simple

22 recursive  Common pattern for recursive methods in Java: public static int factorial(int i) { if (i <= 1) { return 1; } else { int nextI = i – 1; int result = factorial(nextI); return i * result; } } Writing Recursive Methods Recursive Step: 1 step Take 1 step to solution

23 recursive  Common pattern for recursive methods in Java: public static int factorial(int i) { if (i <= 1) { return 1; } else { int nextI = i – 1; int result = factorial(nextI); return i * result; } } Writing Recursive Methods Recursive Step: 1 step Take 1 step to solution Make 1 or more recursive calls

24 Writing Recursive Methods Recursive Step: 1 step Take 1 step to solution Make 1 or more recursive calls (Simple process computes result)

25 Your Turn  Get into your groups and complete activity

26 For Next Lecture  Week #12 assignment due tomorrow  Programming Assignment #2  Programming Assignment #2 due ???  Will send out if enough reviews received by 5PM today  BinaryTree, Heap, & PriorityQueue Quiz Wed.


Download ppt "Problem of the Day  At low tide, a ship docks in the harbor  Ship is 9’ above the water line when it docks  Over the side hangs a rope ladder w/ rungs."

Similar presentations


Ads by Google