# Objectives - PowerPoint PPT Presentation

1 / 26

Heap. Objectives. Upon completion you will be able to: Define and implement heap structures Understand the operation and use of the heap ADT Design and implement selection applications using a heap Design and implement priority queues using a heap. Basic Concepts.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

Objectives

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

#### Presentation Transcript

Heap

Objectives

• Upon completion you will be able to:

• Define and implement heap structures

• Understand the operation and use of the heap ADT

• Design and implement selection applications using a heap

• Design and implement priority queues using a heap

Data Structures: A Pseudocode Approach with C, Second Edition

Basic Concepts

• A heap is a binary tree whose left and right subtrees have values less than their parents. We begin with a discussion of the basic heap structure and its two primary operations, reheap up and reheap down.

• Definition

• Maintenance Operations

Data Structures: A Pseudocode Approach with C, Second Edition

Basic Concepts

• Definition

• A heap is a binary tree structure with the following properties:

• The tree is complete or nearly complete.

• The key value of each node is greater than or equal to the key value in each of its descendents.

• The root of a heap is guaranteed to hold the largest node in the tree; its subtrees contain data that have lesser values.

• Heaps are often implemented in an array rather than a linked list.

Data Structures: A Pseudocode Approach with C, Second Edition

Sometimes this structure is called a max-heap.

A min-heap is to create a heap which the key value in a node is less than the key values in all of its subtrees.

Data Structures: A Pseudocode Approach with C, Second Edition

Data Structures: A Pseudocode Approach with C, Second Edition

Data Structures: A Pseudocode Approach with C, Second Edition

The reheap up operation reorders a “broken” heap by floating the last element up the tree until it is in its correct location in the heap.

Data Structures: A Pseudocode Approach with C, Second Edition

Data Structures: A Pseudocode Approach with C, Second Edition

Reheap Down Operation reorders a “broken” heap by pushing the root down the tree until it is in its correct position in the heap.

Data Structures: A Pseudocode Approach with C, Second Edition

Data Structures: A Pseudocode Approach with C, Second Edition

Heap Implementation

• Heaps are usually implemented in an array structure. In this section we discuss and develop five heap algorithms.

• Reheap Up

• Reheap Down

• Build a Heap

• Insert a Node into a Heap

• Delete a Node from a Heap

Data Structures: A Pseudocode Approach with C, Second Edition

Heap Implementation

The relationship between a node and its children is fixed and can be calculated as shown below:

1. For a node located at index i, its children are found at:

a. Left child: 2i +1

b. Right child: 2i +2

2. The parent of a node located at index i is located at (i -1)/2

3. Given the index for a left child, j, its right sibling, if any, is found at j + 1. Conversely, given the index for a right child, k, its left sibling, which must exist, is found at k - 1.

4. Given the size, n, of a completed heap, the location of the first leaf is (n/2)

5. Given the location of the first leaf element, the location of the last nonleaf element is one less.

Data Structures: A Pseudocode Approach with C, Second Edition

Data Structures: A Pseudocode Approach with C, Second Edition

Data Structures: A Pseudocode Approach with C, Second Edition

Data Structures: A Pseudocode Approach with C, Second Edition

(continued)

Data Structures: A Pseudocode Approach with C, Second Edition

Data Structures: A Pseudocode Approach with C, Second Edition

Data Structures: A Pseudocode Approach with C, Second Edition

Data Structures: A Pseudocode Approach with C, Second Edition

Data Structures: A Pseudocode Approach with C, Second Edition

Data Structures: A Pseudocode Approach with C, Second Edition

Data Structures: A Pseudocode Approach with C, Second Edition

Data Structures: A Pseudocode Approach with C, Second Edition

Data Structures: A Pseudocode Approach with C, Second Edition

Data Structures: A Pseudocode Approach with C, Second Edition

Data Structures: A Pseudocode Approach with C, Second Edition