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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> хранилище для элементов дерева, как организовать его? 
:(
    Опции темы
Vitaly
Дата 26.10.2004, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Приветствую всех участников форума.
Мне нужен совет.
В программе на VC++ в tree control нужно выводить дерево примерно следующего вида:
мир-
Африка
Евразия
Юж. Америка
......
Антарктида
Сев. Америка -----США
.......
Канада----
Монреаль
.....
Торонто
Это только прмер:) Кол-во элементов в каждой ветке может изменяться в зависимости от файла.

Как лучше сохранить эти данные? Многомерный массив -- нерационально, ...?

Я написал класс ветки с параметрами : имя элемента, его начало в файле, длина. Думаю стоит
добавить член указывающий на родителя данной ветки и создавать одномерные массивы таких классов. Например (массив 1 - континенты, 2-й страны, и т.д.)
А как думаете вы?
Спасибо.




PM MAIL   Вверх
Step
Дата 26.10.2004, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

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



я использывал std:map, и пихал туда свою структуру, название, указатель на мап нижнего уровня и позиция.
в результате получилось что я легко мог модифицировать дерево вытаскивая позицию из ассоциативного массива по названию пункта

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


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Vitaly
Дата 26.10.2004, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А можно подробнее про std:map?
что это? Или линк об этом?
PM MAIL   Вверх
Step
Дата 26.10.2004, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

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



Vitaly, про это у нас на форуме куча тем, просто используйте поиск...

мап хорошо, на мой вгляд, использовать для работы с деревом..... и если его приминить к хорошо продуманой структуре то можно организовать и сохранение данных...
Добавлено @ 15:36
еще в факю у нас что-то было или про стл или про мап, немпомню, зайдите туда


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Mad
Дата 26.10.2004, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

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



Step
Опять вы все усложнаете :)
TreeControl и так хранит все дерево :)



--------------------
user posted image
PM MAIL   Вверх
Step
Дата 26.10.2004, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

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



Mad, только работать с ним не удобно... постоянно нужно хранить позиции либо их искать... вот я предлагаю хранить это в мапе
Добавлено @ 16:10
Mad, давайте свои идеи.... интересно ведь....

и давайте на ты


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Mad
Дата 26.10.2004, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

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



Step
Как работать с деревом зависит от того, какие операции пользователя подразумеваются :)

Vitaly
Опиши поподробней, че юзер у тя делать то с этим деревом будет ?


--------------------
user posted image
PM MAIL   Вверх
Vitaly
Дата 27.10.2004, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Mad @ 26.10.2004, 16:42)
Step
Как работать с деревом зависит от того, какие операции пользователя подразумеваются :)

Vitaly
Опиши поподробней, че юзер у тя делать то с этим деревом будет ?

Есть файл (~90 MB ASCII), каждая строка 132 байта.
В этой строке информация записана по определенному стандарту.
Т.Е. 1-й символ например обозначает планету(он во всех стоках первый и длина его 1 символ)
например Земля(буква З); далее со 2-го по 4-й символ идет код зоны (ЕВР - Европа,
АФР-африка и т.д.) , после страна (АНГ-Англия), города и т.д.

Так вот, программа должна построить дерево файла для облегчения понимания информации в нем
находящейся. Второй этап - это пользователь щелкнув правой кнопкой мыши может перенести
любую ветку с нужной инфой например в Excel, Oracle и т.д.
Я думаю что такой интерфейс будет удобнее чем работать с этим текстовым файлом.
Если кого интерисует формат файла так это ARINC - 424. При желании могу скриншот показать.:)
PM MAIL   Вверх
Mad
Дата 27.10.2004, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

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



Vitaly
Дополнительной структуры для хранение данных тебе, в данном слючае, не надо.
При правом клике можно получить HTREEITEM, по которому кликнули, и от него вытянуть как родителей, так и детей.
CTreeCtrl::GetParentItem вернет родительский элемент
CTreeCtrl::GetNextItem предаеш TVGN_CHILD для получения первого дитя, затем TVGN_NEXT для последовательного получения всех детей.



--------------------
user posted image
PM MAIL   Вверх
Vitaly
Дата 27.10.2004, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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





Цитата(Mad @ 27.10.2004, 12:31)

Дополнительной структуры для хранение данных тебе, в данном слючае, не надо.


Спасибо Mad думаю так действительно попроще будет :)
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.0537 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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