В разделе «Концепции системы баз данных», 6 th edition, глава 11, на «Рис. 11.11 Запрос B + -дерева» есть procedure printAll(value V)
. Используется для печати всех записей со значением ключа поиска V (могут быть дубликаты). Он вызывает find(V)
, который возвращает первый листовой узел с ключом V и первый индекс i в этом листе, который имеет этот ключ.
Почему не 'Если код не включает Set i = 1
, когда i > number of keys in L
?
процедура printAll ( значение V )
/ * печатает все записи со значением ключа поиска V * /
Set done = false;
Set ( L, i ) = find ( V );
если (( L, i ) is null) return
repeat
повтор
Распечатать запись указано LP i
Set i = i + 1
до ( i > количество клавиш в L или LK i > V )
if ( i > количество ключей в L )
тогда L = LP n // Не нужно устанавливать i на 1?
else Set done = true;
unti l (выполнено или L равно нулю)