problem of the day

Post on 23-Feb-2016

26 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Problem of the Day. You are trapped alone in a dark room with: Candle; Wood stove ; and Gas lamp (with full tank). You only have one match; what do you light 1 st ?. Problem of the Day. You are trapped alone in a dark room with: Candle; Wood stove ; and Gas lamp (with full tank). - PowerPoint PPT Presentation

TRANSCRIPT

Problem of the Day

You are trapped alone in a dark room with: Candle; Wood stove; and Gas lamp (with full tank).

You only have one match; what do you light 1st?

Problem of the Day

You are trapped alone in a dark room with: Candle; Wood stove; and Gas lamp (with full tank).

You only have one match; what do you light 1st?

Problem of the Day

You are trapped alone in a dark room with: Candle; Wood stove; and Gas lamp (with full tank).

You only have one match; what do you light 1st?

Problem of the Day

You are trapped alone in a dark room with: Candle; Wood stove; and Gas lamp (with full tank).

You only have one match; what do you light 1st?

The match!

LECTURE 37:COMPLETE BINARY TREES & HEAPS

CSC 212 – Data Structures

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

BinaryTree

Picturing Linked BinaryTree

B

CA

D

B

A C

D

BinaryTreeroot

size4

Legal

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 it2

95

67

Illegal

2

95

7

6

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

What Is Purpose of a Heap?

Root has critical element that we always access Element at root always has smallest value in

heap O(1) access time to root without any real effort

Complete binary trees makes adding data easy Create leftmost child on lowest level When a level completes, start next one

Useful when:

Reheapify

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

6

addElement() in a Heap

2

5

79

6

1

addElement() in a Heap

2

5

79

6

1

Start Your Reheapify!

2

5

79

6

1

Start Your Reheapify!

2

5

79

1

6

Start Your Reheapify!

2

5

79

1

6

Reheapify Must Continue

2

5

79

1

6

Reheapify Must Continue

2

5

79

2

6

Reheapify Sounds Icky

1

5

79

2

6

Check If We Should Continue

1

5

79

2

6

Stop At The Root

1

5

79

2

6

addElement() Once Again

1

5

79 3

2

6

Reheapify Begins Anew

1

5

79 3

2

6

Heap-Order Property Maintained

1

5

79 3

2

6

Done With This Reheapify!

1

5

79 3

Removing From a Heap

removeMin() must kill element at heap’s root For a complete tree, must remove last node

added How to reconcile these two different

demands? Removed node's element moved to the

root Then remove node from the complete tree Heap's order preserved by going down

Removing From a Heap

removeMin() must kill element at heap’s root For a complete tree, must remove last node

added How to reconcile these two different

demands? Removed node's element moved to the

root Then remove node from the complete tree Heap's order preserved by going down

Censored

Removal Reheapify

Restores heap’s order during removeMin() Reheapify removal work starts at root Swap with smallest child, if out-of-order Process then continues with old smallest

child Stop at leaf or when node is legal

5

Before removeMin() is called

1

2

97

5

Move Last Element Up To Root

1

2

97

5

Move Last Element Up To Root

1

2

97

5

Move Last Element Up To Root

9

2

7

5

Compare Parent W/Smaller Child

9

2

7

5

Compare Parent W/Smaller Child

9

2

7

5

Compare Parent W/Smaller Child

2

9

7

5

Continue Going Down W/Node

2

9

7

5

Continue Going Down W/Node

2

9

7

5

Swap If Out Of Order

2

7

9

5

Check If We Should Continue

2

7

9

5

Stop When We Reach a Leaf

2

7

9

Implementation Excuses

Reheapify steps will travel height of tree O(log n) running time for each of these Serves as bound for adding & removing

from Heap What drawbacks does heap have?

Coding and understanding heap can be confusing

Use unclear w/o PriorityQueue (hint: Monday)

Array-based BinaryTree

Node at index specified for location in TREE Root node stored at index 0 Root’s left child at index 1 Right child of root at index 2 Left child’s right child at index 4 Right child’s left child at index 5 Node at index n’s left child is at index 2n + 1 Node at index n’s right child is at index 2n +

2

Array-based BinaryTree

Node at index specified for location in TREE Root node stored at index 0 Root’s left child at index 1 Right child of root at index 2 Left child’s right child at index 4 Right child’s left child at index 5 Node at index n’s left child is at index 2n + 1 Node at index n’s right child is at index 2n +

2But how much space will

this need for to hold a heap?

Array to Implement Heap

2

0

2

0

Array to Implement Heap

2

9

0 1

2

0

1

9

Array to Implement Heap

2

9 3

0 1 2

2

0

1

9

2

3

`

Array to Implement Heap

2

9 3

99

0 1 2 3

2

0

1

9

2

3

3

99

`

Array to Implement Heap

2

9 3

99

0 1 2 3

2

0

1

9

2

3

3

99

`

Add nodes to end of the SequenceSimilarly, remove node at end

NO space is wasted for this!

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

Your Turn

Get into your groups and complete activity

For Next Lecture

Read 12.2 for Monday's lecture How does a heap relate to PriorityQueue? How do computers prioritize, & what does it

matter? How would we organize the patients in an

ER?

Week #13 posted today & due week from Tues.

Programming Assignment #2 available now

top related