Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сериализация дерева 
:(
    Опции темы
mrgloom
Дата 18.7.2011, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



как производить сериализацию дерева? (quadtree)
PM MAIL   Вверх
boostcoder
Дата 18.7.2011, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



каждый нод по отдельности и скармливать boost.serialization.

Это сообщение отредактировал(а) boostcoder - 18.7.2011, 17:35
PM WWW   Вверх
mrgloom
Дата 18.7.2011, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



буст не охота подрубать.

я так понял надо делать как то обход дерева просто и записывать на диск.


PM MAIL   Вверх
borisbn
Дата 18.7.2011, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(mrgloom @  18.7.2011,  17:38 Найти цитируемый пост)
я так понял надо делать как то обход дерева просто и записывать на диск.

ну, в общем - правильно. mrgloom, а в чём проблема-то ?



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
bsa
Дата 18.7.2011, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(mrgloom @  18.7.2011,  17:38 Найти цитируемый пост)
я так понял надо делать как то обход дерева просто и записывать на диск.

вроде того. только еще бы следовало сохранить связи. Я бы сохранял каждый узел так: <данные> <количество подузлов> <подузел1> ... <подузелN> ....
PM   Вверх
borisbn
Дата 18.7.2011, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



и ещё один момент - если позволяет объём и скорость (объём небольшой - килобайты, скорость не важна - делается один раз при выходе из программы), то стОит сохранять в текстовом виде - пока отлаживаешься гораздо удобнее контролировать. Чтение будет чуть более муторное, но на это, думаю, стОит пойти.


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
null56
Дата 23.7.2011, 02:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: 2
Всего: 12



буквально недавно такую задачу решал, сделал так
http://www.cs.usfca.edu/~brooks/S04classes...s/lecture11.pdf

Это сообщение отредактировал(а) null56 - 23.7.2011, 02:59
PM MAIL   Вверх
spyswamp
Дата 25.7.2011, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 349
Регистрация: 18.8.2006

Репутация: 1
Всего: 7



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

Добавлено через 36 секунд
Упс, вроде, выше на него ссылка. smile Никак не привыкну к графике форума, половину текста глаз не улавливает. :(


--------------------
- why you call it beta?
- cuz it's betta then nothin'
PM MAIL   Вверх
baldina
Дата 25.7.2011, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



если дерево полное, его можно хранить в массиве аналогично полному двоичному дереву:
потомки i-го узла имеют индексы 4i, 4i+1, 4i+2, 4i+3
родитель i-го узла имеет индекс i/4 (целая часть)

Добавлено через 10 минут и 42 секунды
Цитата(bsa @  18.7.2011,  17:46 Найти цитируемый пост)
вроде того. только еще бы следовало сохранить связи. Я бы сохранял каждый узел так: <данные> <количество подузлов> <подузел1> ... <подузелN> .... 

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

Добавлено через 12 минут и 44 секунды
Цитата(mrgloom @  18.7.2011,  17:38 Найти цитируемый пост)
как то обход дерева

если связи хранятся неявно, то в глубину
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1249 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.