Introduction to Algorithms, Third Edition


-2 Join operation on red-black trees



Download 4,84 Mb.
Pdf ko'rish
bet215/618
Sana07.04.2022
Hajmi4,84 Mb.
#534272
1   ...   211   212   213   214   215   216   217   218   ...   618
Bog'liq
Introduction-to-algorithms-3rd-edition

13-2
Join operation on red-black trees
The
join
operation takes two dynamic sets
S
1
and
S
2
and an element
x
such that
for any
x
1
2
S
1
and
x
2
2
S
2
, we have
x
1
:
key
x:
key
x
2
:
key
. It returns a set
S
D
S
1
[ f
x
g [
S
2
. In this problem, we investigate how to implement the join
operation on red-black trees.
a.
Given a red-black tree
T
, let us store its black-height as the new attribute
T:
bh
.
Argue that RB-I
NSERT
and RB-D
ELETE
can maintain the
bh
attribute with-
out requiring extra storage in the nodes of the tree and without increasing the
asymptotic running times. Show that while descending through
T
, we can de-
termine the black-height of each node we visit in
O.1/
time per node visited.
We wish to implement the operation RB-J
OIN
.T
1
; x; T
2
/
, which destroys
T
1
and
T
2
and returns a red-black tree
T
D
T
1
[ f
x
g [
T
2
. Let
n
be the total number of nodes
in
T
1
and
T
2
.
b.
Assume that
T
1
:
bh
T
2
:
bh
. Describe an
O.
lg
n/
-time algorithm that finds a
black node
y
in
T
1
with the largest key from among those nodes whose black-
height is
T
2
:
bh
.
c.
Let
T
y
be the subtree rooted at
y
. Describe how
T
y
[ f
x
g [
T
2
can replace
T
y
in
O.1/
time without destroying the binary-search-tree property.
d.
What color should we make
x
so that red-black properties 1, 3, and 5 are main-
tained? Describe how to enforce properties 2 and 4 in
O.
lg
n/
time.


Problems for Chapter 13
333
e.
Argue that no generality is lost by making the assumption in part (b). Describe
the symmetric situation that arises when
T
1
:
bh
T
2
:
bh
.
f.
Argue that the running time of RB-J
OIN
is
O.
lg
n/
.
13-3
AVL trees
An
AVL tree
is a binary search tree that is
height balanced
: for each node
x
, the
heights of the left and right subtrees of
x
differ by at most
1
. To implement an AVL
tree, we maintain an extra attribute in each node:
x:
h
is the height of node
x
. As
for any other binary search tree
T
, we assume that
T:
root
points to the root node.
a.
Prove that an AVL tree with
n
nodes has height
O.
lg
n/
. (
Hint:
Prove that
an AVL tree of height
h
has at least
F
h
nodes, where
F
h
is the
h
th Fibonacci
number.)
b.
To insert into an AVL tree, we first place a node into the appropriate place in bi-
nary search tree order. Afterward, the tree might no longer be height balanced.
Specifically, the heights of the left and right children of some node might differ
by
2
. Describe a procedure B
ALANCE
.x/
, which takes a subtree rooted at
x
whose left and right children are height balanced and have heights that differ
by at most
2
, i.e.,
j
x:
right
:
h
x:
left
:
h

2
, and alters the subtree rooted at
x
to be height balanced. (
Hint:
Use rotations.)
c.
Using part (b), describe a recursive procedure AVL-I
NSERT
.x; ´/
that takes
a node
x
within an AVL tree and a newly created node
´
(whose key has al-
ready been filled in), and adds
´
to the subtree rooted at
x
, maintaining the
property that
x
is the root of an AVL tree. As in T
REE
-I
NSERT
from Sec-
tion 12.3, assume that
´:
key
has already been filled in and that
´:
left
D
NIL
and
´:
right
D
NIL
; also assume that
´:
h
D
0
. Thus, to insert the node
´
into
the AVL tree
T
, we call AVL-I
NSERT
.T:
root
; ´/
.
d.
Show that AVL-I
NSERT
, run on an
n
-node AVL tree, takes
O.
lg
n/
time and
performs
O.1/
rotations.
13-4
Treaps
If we insert a set of
n
items into a binary search tree, the resulting tree may be
horribly unbalanced, leading to long search times. As we saw in Section 12.4,
however, randomly built binary search trees tend to be balanced. Therefore, one
strategy that, on average, builds a balanced tree for a fixed set of items would be to
randomly permute the items and then insert them in that order into the tree.
What if we do not have all the items at once? If we receive the items one at a
time, can we still randomly build a binary search tree out of them?


334
Chapter 13
Red-Black Trees
G
: 4
B
: 7
H
: 5
A
: 10
E
: 23
K
: 65
I
: 73
Figure 13.9
A treap. Each node
x
is labeled with
x:
key
:
x:
priority
. For example, the root has
key
G
and priority 4.
We will examine a data structure that answers this question in the affirmative. A
treap
is a binary search tree with a modified way of ordering the nodes. Figure 13.9
shows an example. As usual, each node
x
in the tree has a key value
x:
key
. In
addition, we assign
x:
priority
, which is a random number chosen independently
for each node. We assume that all priorities are distinct and also that all keys are
distinct. The nodes of the treap are ordered so that the keys obey the binary-search-
tree property and the priorities obey the min-heap order property:
If
is a left child of
u
, then
:
key
< u:
key
.
If
is a right child of
u
, then
:
key
> u:
key
.
If
is a child of
u
, then
:
priority
> u:
priority
.
(This combination of properties is why the tree is called a “treap”: it has features
of both a binary search tree and a heap.)
It helps to think of treaps in the following way. Suppose that we insert nodes
x
1
; x
2
; : : : ; x
n
, with associated keys, into a treap. Then the resulting treap is the
tree that would have been formed if the nodes had been inserted into a normal
binary search tree in the order given by their (randomly chosen) priorities, i.e.,
x
i
:
priority
< x
j
:
priority
means that we had inserted
x
i
before
x
j
.
a.
Show that given a set of nodes
x
1
; x
2
; : : : ; x
n
, with associated keys and priori-
ties, all distinct, the treap associated with these nodes is unique.
b.
Show that the expected height of a treap is
‚.
lg
n/
, and hence the expected time
to search for a value in the treap is
‚.
lg
n/
.
Let us see how to insert a new node into an existing treap. The first thing we do
is assign to the new node a random priority. Then we call the insertion algorithm,
which we call T
REAP
-I
NSERT
, whose operation is illustrated in Figure 13.10.


Problems for Chapter 13
335
G
: 4
B
: 7
H
: 5
A
: 10
E
: 23
K
: 65
I
: 73
G
: 4
B
: 7
H
: 5
A
: 10
E
: 23
K
: 65
I
: 73
C
: 25
C
: 25
(a)
(b)
G
: 4
B
: 7
H
: 5
A
: 10
E
: 23
K
: 65
I
: 73
C
: 25
(c)
D
: 9
D
: 9
G
: 4
B
: 7
H
: 5
A
: 10
E
: 23
K
: 65
I
: 73
(d)
D
: 9
C
: 25
G
: 4
B
: 7
H
: 5
A
: 10
K
: 65
I
: 73
(e)
D
: 9
C
: 25
E
: 23
B
: 7
A
: 10
(f)
D
: 9
C
: 25
E
: 23
F
: 2
I
: 73
K
: 65
H
: 5
G
: 4
F
: 2


Download 4,84 Mb.

Do'stlaringiz bilan baham:
1   ...   211   212   213   214   215   216   217   218   ...   618




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish