Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.227.161.132] |
|
Сообщ.
#1
,
|
|
|
нужна струкура данных, типа дерева.
в каждом узле - некая строка(полезные данные), и ссылки на n дочерних узлов. есть ли че такое в STL? может у кого сразу и примеры использования есть? |
Сообщ.
#2
,
|
|
|
Ну например возьми формат XML - дети, данные - все как надо.
|
Сообщ.
#3
,
|
|
|
Цитата DarkKo, 2.03.04, 10:20 Ну например возьми формат XML - дети, данные - все как надо. ????? мне нужно как-нить эту структуру на с++ реализовать. ручками не хочется. вдруг уже есть стандартная. вот спрашиваю... |
Сообщ.
#4
,
|
|
|
Насколько я знаю, в STL готовой такой штуки нету..
Но что тебе мешает сделать так: определяем класс CData, содержащий твои данные(твоя строка) + массив указателей на дочерние элементы типа CData(например list<CData*>)? Еще создаем класс CTree, который содержит vector<CData*> (указатели на узлы). Уже в этом классе CTree реализовываем добавление/удаление узлов.. В данном случае не уверен, что получится красивое добавление данных(в классе CTree). Посмотри сам там.. Если будет неудобно, тогда вместо CData мона сделать класс CNode(содержит то же самое, что и CData, тока функциональности больше). Добавь ему метод CNode::AddItem(...); И тогда уже в классе CTree в методе CTree::AddItem(...) можешь смотреть, какому узлу передавать дальше управление на добавление элемента..(получится рекурсия...) |
Сообщ.
#5
,
|
|
|
Demo_S, Ну вообще-то библиотеки XML (которые я видел) реализованы на с++. Просто можешь взять сорсы и идеологию всю взять от туда. Или даже по другому - вырезать из XML то что тебе не нужно и юзать. Или еще проще - просто использовать XML.
|