| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > сериализация дерева |
| Автор: mrgloom 18.7.2011, 17:08 |
| как производить сериализацию дерева? (quadtree) |
| Автор: boostcoder 18.7.2011, 17:34 |
| каждый нод по отдельности и скармливать http://www.boost.org/doc/libs/1_47_0/libs/serialization/doc/index.html. |
| Автор: mrgloom 18.7.2011, 17:38 |
| буст не охота подрубать. я так понял надо делать как то обход дерева просто и записывать на диск. |
| Автор: borisbn 18.7.2011, 17:43 | ||
ну, в общем - правильно. mrgloom, а в чём проблема-то ? |
| Автор: borisbn 18.7.2011, 18:12 |
| и ещё один момент - если позволяет объём и скорость (объём небольшой - килобайты, скорость не важна - делается один раз при выходе из программы), то стОит сохранять в текстовом виде - пока отлаживаешься гораздо удобнее контролировать. Чтение будет чуть более муторное, но на это, думаю, стОит пойти. |
| Автор: null56 23.7.2011, 02:59 |
| буквально недавно такую задачу решал, сделал так http://www.cs.usfca.edu/~brooks/S04classes/cs245/lectures/lecture11.pdf |
| Автор: spyswamp 25.7.2011, 10:47 |
| Это же классический алгоритм обхода дерева (погугли, смотря какое у тебя там дерево в итоге получается). Туда прогнал - сохранилось, обратно - восстановилось. Добавлено через 36 секунд Упс, вроде, выше на него ссылка. |
| Автор: baldina 25.7.2011, 11:43 | ||
| если дерево полное, его можно хранить в массиве аналогично полному двоичному дереву: потомки i-го узла имеют индексы 4i, 4i+1, 4i+2, 4i+3 родитель i-го узла имеет индекс i/4 (целая часть) Добавлено через 10 минут и 42 секунды
если дерево единообразно сохраняется, то и восстанавливается однозначно. если узел может иметь разное число потомков, разумно использовать маркеры, как у null56. Добавлено через 12 минут и 44 секунды если связи хранятся неявно, то в глубину |