Где бы раздобыть хороший исходничек работы с деревьями или разъясните как 1. рекурсивно обходить дерево с "n" элементами и "n" подэлементами 2. как динамически перераспределить память, а то у меня с reallocom что-то не получается - он предыдущие данные затирает а мне они нужны. Зарание спасибо.
Приветствую Вас, Ju$tice! Посмотри на http://algolist.manual.ru/ Ответ отправлен: 04.11.2002, 10:25 Отправитель: Yuri Gordienko Отвечает vitya
Добрый день, Ju$tice! Итак я предполагаю, что требуется древовидная структура с n детьми. Похожая структура называется B - Tree, дай поиск и получишь кучу ссылок. #include #include using namespace std; //узел с шаблонным параметром для типа template struct SNode { T m_data; vector *> m_vecSiblings; inline void addSibling(SNode * pNode) { m_vecSiblings.push_back(pNode); } }; realloc() если следовать MSDN копирует данные на новое место, то есть затирок быть не должно. Может ты не так вызываешь ее? pData = (T *)realloc(pData, iNewSize);
//tree traversal in inorder void TraverseRecursive(const SNode * pRoot) { cout << pRoot->m_data; vector::const_iterator it = m_vecSiblings.begin(); for (; it != m_vecSiblings.end(); ++it)
TraverseRecursive(*it); }
Ответ отправлен: 04.11.2002, 12:54 Отправитель: vitya Отвечает Jadd
Доброе время суток, Ju$tice! 1) www.rsdn.ru 2) оператор new забыл? Ответ отправлен: 06.11.2002, 02:52 Отправитель: Jadd
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.