Introduction to Algorithms, Third Edition



Download 4,84 Mb.
Pdf ko'rish
bet335/618
Sana07.04.2022
Hajmi4,84 Mb.
#534272
1   ...   331   332   333   334   335   336   337   338   ...   618
Bog'liq
Introduction-to-algorithms-3rd-edition

Creating an empty B-tree
To build a B-tree
T
, we first use B-T
REE
-C
REATE
to create an empty root node
and then call B-T
REE
-I
NSERT
to add new keys. Both of these procedures use an
auxiliary procedure A
LLOCATE
-N
ODE
, which allocates one disk page to be used
as a new node in
O.1/
time. We can assume that a node created by A
LLOCATE
-
N
ODE
requires no D
ISK
-R
EAD
, since there is as yet no useful information stored
on the disk for that node.
B-T
REE
-C
REATE
.T /
1
x
D
A
LLOCATE
-N
ODE
./
2
x:
leaf
D
TRUE
3
x:
n
D
0
4
D
ISK
-W
RITE
.x/
5
T:
root
D
x
B-T
REE
-C
REATE
requires
O.1/
disk operations and
O.1/
CPU time.


18.2
Basic operations on B-trees
493
Inserting a key into a B-tree
Inserting a key into a B-tree is significantly more complicated than inserting a key
into a binary search tree. As with binary search trees, we search for the leaf position
at which to insert the new key. With a B-tree, however, we cannot simply create
a new leaf node and insert it, as the resulting tree would fail to be a valid B-tree.
Instead, we insert the new key into an existing leaf node. Since we cannot insert a
key into a leaf node that is full, we introduce an operation that
splits
a full node
y
(having
2t
1
keys) around its
median key
y:
key
t
into two nodes having only
t
1
keys each. The median key moves up into
y
’s parent to identify the dividing point
between the two new trees. But if
y
’s parent is also full, we must split it before we
can insert the new key, and thus we could end up splitting full nodes all the way up
the tree.
As with a binary search tree, we can insert a key into a B-tree in a single pass
down the tree from the root to a leaf. To do so, we do not wait to find out whether
we will actually need to split a full node in order to do the insertion. Instead, as we
travel down the tree searching for the position where the new key belongs, we split
each full node we come to along the way (including the leaf itself). Thus whenever
we want to split a full node
y
, we are assured that its parent is not full.

Download 4,84 Mb.

Do'stlaringiz bilan baham:
1   ...   331   332   333   334   335   336   337   338   ...   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