Professional Documents
Culture Documents
Text
Read Weiss, 23.1 (Skew Heaps) Definition of null path length Definition of leftist heap Sequence of inserts Re-heapification if leftist heap property is violated
Leftist Heap
Motivation
A binary heap provides O(log n) inserts and O(log n) deletes but suffers from O(n log n) merges A leftist heap offers O(log n) inserts and O(log n) deletes and O(log n) merges Note, however, leftist heap inserts and deletes are more expensive than Binary Heap inserts and deletes
Definition
A Leftist (min)Heap is a binary tree that satisfies the following conditions. If X is a node and L and R are its left and right children, then:
1. X.value L.value 2. X.value R.value 3. null path length of L null path length of R
where the null path length of a node is the shortest distance between from that node to a descendant with 0 or 1 child. If a node is null, its null path length is 1.
15
node npl 4 1
25
8 0 19 1 12 1
43
15 0 25 0 27 0 20 0 43 0
19
0
27
20
15
0 4 1
25
8 0
0 19 1 12 1
43
15 0
What are the npls of the children of 20 and the right child of 27? 27 0 20 0 43 0
node npl
25 0
19 27
0
20
15
0 4 1
25
8 0
0 19 1 12 1
43
15 0
0 27 0 20 0 43 0
node npl
25 0
Leftist Heap
4
19 27
0 1
8 20
0
12
43
npl
0 4 1 8 0 19 1 12 1
15
15 0
0 25 0 27 0
25
20 0
0 43 0
node
12
6
7
43
y
6
7
43
y
6
7
43
x
8
6
7
43
Repeat the process with the right child of the smaller value
x
8
6
7
43
6 4
x
8
6
7
43
6 4
Repeat the process with the right child of the smaller value
x
8
6
7
43
7 6 4
x
8
6
7
y null 7 6 4
43
Repeat the process with the right child of the smaller value
x
8
6
7
43
7 6 4
Refers to node 8
14
7 8 12 15 25
43
8 7 6 4
Refers to node 8
14
8 8 12 15 25
43
8 7 6 4
Refers to node 8
14
8 8 12 15 25
43
6 4
Return node 7
Refers to node 8
14
8 8 12 15 25
43
6 4
Refers to node 8
14
8 8 12 15 25
43
6 4
Refers to node 8
14
8 8 12 15 25
43
Return node 6
43
43
43
Return node 4
Analysis
Height of a leftist heap O(log n) Maximum number of values stored in Stack 2 * O(log n) O(log n) Total cost of merge O(log n)
Skew Heaps
Text
Read Weiss, 6.7 No need for null path length Definition of skew heap Sequence of inserts Swap children at every merge step
Skew Heap
Motivation
Simplify leftist heap by not maintaining null path lengths swapping children at every merge step
Definition
A Skew (min)Heap is a binary tree that satisfies the following conditions. If X is a node and L and R are its left and right children, then:
1. 2. X.value L.value X.value R.value
A Skew (max)Heap is a binary tree that satisfies the following conditions. If X is a node and L and R are its left and right children, then:
1. 2. X.value L.value X.value R.value
12
6
7
43
y
6
7
43
y
6
7
43
x
8
6
7
43
Repeat the process with the right child of the smaller value
x
8
6
7
43
6 4
x
8
6
7
43
6 4
Repeat the process with the right child of the smaller value
x
8
6
7
43
7 6 4
x
8
6
7
y null 7 6 4
43
Repeat the process with the right child of the smaller value
x
8
6
7
43
7 6 4
Refers to node 8
14
7 8 12 15 25
43
8 7 6 4
Refers to node 8
14
8 8 12 15 25
43
8 7 6 4
Refers to node 8
14
8 8 12 15 25
43
6 4
Return node 7
Refers to node 8
14
8 8 12 15 25
43
6 4
Refers to node 8
8
7 14
43
6 4
Refers to node 8
8
7 14
43
Return node 6
6 8
43
8
43
27
20
8
43
27
20
Return node 4
Analysis
Height of a skew heap O(log n) Maximum number of values stored in Stack 2 * O(log n) O(log n) Total cost of merge O(log n)