Предположим, дерево B + с порядком m. Почему у не-листового узла должны быть хотя бы полные (m/2) дети? Или что произойдет, если это свойство не будет выполнено.Нелистовой узел в дереве B +
ответ
Если вы не применяете правило полуобполнения, вы можете получить (эффективно) неуравновешенное дерево, например.
[root]
/ \_________________________
/ \
[branch] [branch]
/ \ ____/ | \___
/ \ / | \
[1-record leaf] [1-record leaf] [100-record leaf] [100-record leaf] [100-record leaf]
Это займет гораздо меньше времени, чтобы найти первую или вторую запись в этом дереве, чем найти любого из других 300 записей.
Если вы позволите листьям иметь всего одну запись, а ветви имеют всего лишь один ключ (и, следовательно, двое детей), я считаю, что несоответствие времени поиска может быть столь же плохим, как log (m) (где m - порядок дерева). Поиск записи по пути с полными узлами занимает время Θ (log (N) * log (m)) (где N = общее количество записей, поэтому log (N) пропорционален высоте дерева), при просмотре запись по пути узлов минимального размера занимает только время Θ (log (N)) (потому что вы выполняете ровно одно сравнение в каждой ветви и ни одного в листе).
Применяя правило полуобполнения, вы гарантируете, что все времена поиска равны Θ (log (N) * log (m)) и постоянным коэффициентом друг друга.
- 1. B-tree: удалить нелистовой узел?
- 2. Число узлов в дереве B
- 3. Указатели в дереве B
- 4. Ближайший узел в дереве
- 5. Узел членства Lisp в дереве
- 6. Количество поддеревьев корневого узла в дереве B
- 7. Вторичные ключи в B-дереве
- 8. Число узлов в B-дереве
- 9. Максимальные и минимальные элементы в дереве B +
- 10. Проверьте узел в дереве удален
- 11. Что такое узел в дереве?
- 12. Программно щелкните узел в дереве?
- 13. Что такое указатели в дереве B?
- 14. Есть ли какой-либо предел для заказа в B-дереве и дереве B +?
- 15. Как найти число уровней в B-дереве
- 16. Определение объекта внутри функции в дереве B +
- 17. Поиск нескольких записей в B-дереве сразу
- 18. Максимальное количество потомков в B-дереве
- 19. Выберите родительский узел, если в дереве установлен один дочерний узел
- 20. Узел счетчика в двоичном дереве поиска
- 21. Получить родительский узел в дереве настраиваемых разделов
- 22. Удалить узел в двоичном дереве поиска
- 23. Как развернуть конкретный узел в дереве YUI
- 24. Как найти определенный узел в двоичном дереве?
- 25. Как получить выбранный узел в дереве
- 26. Ссылка на узел в двоичном дереве
- 27. Как идентифицировать нарушенный узел в дереве AVL?
- 28. Как найти выбранный узел в дереве?
- 29. Найти узел по id в дереве json
- 30. Переместить узел в дереве вверх или вниз
Я голосую, чтобы закрыть этот вопрос как не по теме, потому что это вопрос, связанный с домашним заданием, без каких-либо доказательств предшествующей работы. – Gene