在 Database System Concepts,第 6版,第 11 章,“图 11.11 查询 B+-树”中,有一个procedure printAll(value V)
. 它用于打印搜索键值为V的所有记录(可以有重复)。它调用,它返回具有键Vfind(V)
的第一个叶节点,以及该叶中具有该键的第一个索引i。
为什么代码不包含Set i = 1
when i > number of keys in L
?
procedure printAll( value V )
/* 打印搜索键值为V的所有记录*/
Set done = false;
设置 ( L,i ) = 查找( V );
if (( L,i ) 为空) return
repeat
repeat打印LP i
指向的记录
Set i = i + 1 until ( i > L中的键数或L.K i > V ) if ( i > 中的键数
L )
then L = LP n // 不需要将i设置为 1?
否则设置完成=真;
直到(完成或L为空)