B-tree: insert: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 1: | Line 1: | ||
= Pseudocode = | [[Category: B-Tree]] | ||
[[Category: Algorithm]] | |||
== General Information == | |||
== Abstract View == | |||
== Induction Basis == | |||
== Induction Step == | |||
== Complexity == | |||
== Pseudocode == | |||
=== B-TREE-INSERT(''T'',''k'') === | === B-TREE-INSERT(''T'',''k'') === | ||
Line 39: | Line 53: | ||
17 B-TREE-INSERT-NONFULL(''x.c<sub>i</sub>, k) | 17 B-TREE-INSERT-NONFULL(''x.c<sub>i</sub>, k) | ||
</code> | </code> | ||
== Further Information == |
Revision as of 11:26, 26 September 2014
General Information
Abstract View
Induction Basis
Induction Step
Complexity
Pseudocode
B-TREE-INSERT(T,k)
B-TREE-INSERT(T,k)
1 r = T.root
2 if r.n == 2t - 1
3 s = ALLOCATE-NODE()
4 T.root = s
5 s.leaf = FALSE
6 s.n = 0
7 s.c1 = r
8 B-TREE-SPLIT-CHILD(s, 1)
9 B-TREE-INSERT-NONFULL(s, k)
10 else B-TREE-INSERT-NONFULL(r, k)
B-TREE-INSERT-NONFULL(x,k)
B-TREE-INSERT-NONFULL(x,k)
1 i = x.n
2 if x.leaf
3 while i ≥ 1 and k < x.keyi
4 x.keyi+1= x.keyi
5 i = i - 1
6 x.keyi+111 = k
7 x.n = x.n + 1
8 DISK-WRITE(x)
9 else while i ≥ 1 and k < x.keyi
10 i = i - 1
11 i = i + 1
12 DISK-READ(x.ci)
13 if x.ci.n == 2t - 1
14 B-TREE-SPLIT-CHILD(x, i)
15 if k > x.keyi
16 i = i + 1
17 B-TREE-INSERT-NONFULL(x.ci, k)