Здравствуйте, potap, Вы писали:
К>>Нужно, к примеру, для балансирования дерева.
P>это как ? что значит "балансирование дерева" ?
Балансированное дерево — такое, что в каждой дочерней ветке поровну (почти поровну) узлов.
Балансирование — перестройка дерева так, чтобы оно стало балансированным.
P>>Мне было бы понятно если дерево хранит словарь. о — отец для : он, ор, оса. он — отец для : они, оно, онуфрий. Но тогда бинарным деревом не обойтись ...
К>>Ну ты сам предложил тернарное дерево.
P>Я чисто для примера предложил. Случайно оказалось, что дочек у всех по три. Пусть будет ещё "она" и у "он" будет уже 4 дочки.
К>>А почему нельзя бинарное?
К>>Бинарное Б-дерево.
P>Да нет. "онуфрий" дочка для "он", а не "о". "он" лучше подходит на роль отца.
P>Я имел ввиду такое дерево :
P>P>о +
P> +-> он +
P> | +-> они
P> | +-> оно
P> | +-> онуфрий
P> | +-> она
P> |
P> +-> ор +
P> +-> оса+
P>
Это еще одна разновидность: дерево с неограниченным (или равным алфавиту) числом дочерних узлов.
Словарю в принципе по барабану, в какой структуре храниться.
Можно в твоей (каждый уровень — другая буква),
можно в Б-дереве ( узел < дочка1 < правнучка1 < дочка2 ... < правнучкаN < следующий )
можно в дереве сравнений ( дочка1 < правнучка12...2 < узел < правнучка21...1 < дочка2 )
При этом слова, начинающиеся, скажем, на "он" с легкостью находятся во всех структурах.
Быстрее всего — в алфавитном дереве, затем — в Б-дереве, затем — в дереве сравнений.
(=^.^=) Neko ... << RSDN@Home 1.0 beta 6a >>