Каковы преимущества хранения всех элементов в узлах листьев?

голоса
13

Читаю Структуры Advanced Data Питер Брасса.

В начале главы о поисковых деревьев, он отметил, что есть две модели деревьев поиска - один, где узлы содержат реальный объект (значение, если дерево используется в качестве словаря), и другие, где все объекты хранятся в листья и внутренние узлы только для сравнения.

Каковы преимущества второй модели над первым?

Задан 14/10/2010 в 18:57
источник пользователем
На других языках...                            


4 ответов

голоса
0

а хранение объектов информации в узлах, мы говорим в данном случае о синтаксическом дереве, является полезным для быстрого считывания информации (быстрее, чем хранение материала в массиве / хеше-таблице, где в худшем случае Ауфы Acces О (п), в синтаксическом дереве это O (м) [м является длиной п])

смотрите здесь: https://en.wikipedia.org/wiki/Trie

В дереве поиска это oerations может быть гораздо сложнее (смотрите AVL дерева O (журнал N)) и поэтому может быть медленнее и более compley реализовать.

Какая структура данных, чтобы выбрать ?? Ну это зависит от того, что и хотят сделать

Ответил 14/10/2010 в 19:15
источник пользователем

голоса
9

Одним из больших преимуществ бинарного дерева, где данные только в узлах листьев является то, что вы можете разделить на основе элементов, которые не в наборе данных.

Например, если у меня есть возможный набор данных 0-1 млн, но подавляющее большинство деталей либо на высоком конце или нижнем конце , но не в середине, возможно, я все еще хочу , чтобы мой первый сравниваться 500000 - даже если это число не в моем наборе данных . Если каждый узел имел данные, я не мог этого сделать. Хотя обычно не требуется , в теории, я столкнулся много раз , что разделение на основе значения вне моих данных упрощенной реализации.

Ответил 14/10/2010 в 19:15
источник пользователем

голоса
3

B + деревья являются примером случая, когда все ключевые / значения сохраняются в листовых узлах. Основное преимущество является то, что, поскольку все элементы находятся в узлах листьев, узлы листа может быть соединены вместе, чтобы сформировать связанный список, который позволяет быстро упорядоченный обход. Если доступ к определенному элементу, вы всегда можете найти следующий элемент в последовательности без посещения каких-либо родителей, потому что листовые узлы связаны между собой. Файловые и система хранения данных могут воспользоваться этой структурой для поиска диапазона и прочего.

Ответил 29/11/2011 в 12:07
источник пользователем

голоса
1

Допустим, вы строите дерево над некоторыми объектами на некоторых сложных критериев. На примере рассчитывается из нескольких свойств. Иногда вы не можете изменить этот объект для хранения вычисляется значения и вычисляя критерии экспансивный. Таким образом, вы рассчитать этот критерий только один раз, и хранить объекты в лавровом листе на основе критериев результат. Тогда, когда ваше дерево будет завершено, вы можете найти нужный объект гораздо быстрее, потому что вы не должны рассчитать критерии для каждого узла дерева в вашем пути.

Ответил 29/11/2011 в 17:55
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more