| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Дерево с произвольным ветвлением |
| Автор: PRF 14.5.2008, 18:48 |
| Здрасти!! помогите пожалуйста!!! Придумайте способ хранения дерева с произвольным ветвлением, при котором в каждой вершине хранятся всего два (а не три, как в схеме «левый ребенок-правый сосед») указателя плюс одна булева переменная. Спасибо! |
| Автор: maxdiver 14.5.2008, 18:52 |
| "Левый рёбенок" + "Правый сосед" = 2 Зачем нужен третий указатель, я что-то не понимаю. |
| Автор: PRF 14.5.2008, 19:01 |
| Я сам точно не понимаю, но так вроде, на левого ребенка , правый сосед, и на вершнину! Короче дерево с произвольным ветвлением!! |
| Автор: Earnest 15.5.2008, 10:56 |
| Еще нужен парент. Хотя во многих алгоритмах без парента прожить можно, но есть случаи, когда очень неудобно без него. |
| Автор: maxdiver 15.5.2008, 13:09 |
| Ну без parentа практически всегда можно обойтись. А удобство - это уже второстепенный вопрос, здесь же требуется _хранить_ дерево, а не делать с ним что-то Правда, мне ещё непонятно, зачем boolean нужен |
| Автор: Kallisto 15.5.2008, 21:57 | ||
| я выкрутился след. образом: 1. Каждый узел был пронумерован, от 1 до N. 2. Далее прохожусь по дереву и пишу в файл: номер, значения узла. И запоминаю с какими узлами связан этот узел 3. после записи значений, пишу связи. Пример: ![]() Красный - номер вершины. Синий - значение. Выходной файл:
|
| Автор: SoWa 16.5.2008, 11:08 |
| А можно не хранить нумерацию. Можно её выстраивать из пар предок-наследник. Вроде на бумажке возможно |