Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- - u ha un solo figlio v
- - se il blocco di v ha spazio aggiungi u; u.depth = v.depth
- - altrimenti chiudi il blocco di v e crea un nuovo blocco; u.depth = v.depth + 1
- - u è una foglia
- - u.depth = 1
- - u ha due figli v1 v2
- - se i blocchi sono entrambi pieni creo un nuovo blocco per u; u.depth = max{vi.depth}+1
- - se v1 è pieno e v2 no
- - se v1.depth >= v2.depth
- - chiudi v1 e v2 e crea un nuovo blocco per u; u.depth = v1.depth+1
- - altrimenti aggiungi u al blocco di v2; u.depth = v2.depth
- - se v2 e pieno e v1 no idem
- - se entrambi sono non pieni
- - se v1.size+v2.size < B
- - crea un nuovo blocco con v1, v2 e u; v1.depth = v2.depth = u.depth = max(vi.depth)
- - altrimenti (la somma è maggiore o uguale a B)
- - se v1.depth >= v2.depth chiudo v2, aggiungo u a v1, u.depth = v1.depth
- - altrimenti chiudo v1, aggiungo u a v2, u.depth = v2.depth
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement