Рекурсией, также как и с поиском по директориям...
| Код | class CTree { public: virtual bool IsTree() = 0; char* ItemName(); CTree *FindFirst(); //Функция для нахождения первого обьекта CTree *FindNext(); //Функция для нахождения дальнейших обьектов //После нахождения обьекта проверяется его тип..Если это дерево то вызывается рекурсивная функция уже для этого дерва //Если нет то на экран выводится наименование обьекта //Здесь надо реализовать само дерево, я не знаю в каком оно у тебя виде, но если еще на написано лучще будет так написать };
class CTreeRoot : public CTree { public: virtual bool IsTree() { return true; }; };
class CTreeItem : public CTree { public: virtual bool IsTree() { return false; }; };
void PrintTree(CTree *pRoot) { CTree* pItem = pRoot->FindFirst(); do { if (pItem->IsTree()) { printf("%s", pItem->ItemName()); PrintTree(pItem); } else { printf(" %s", pItem->ItemName()); } } while ( (pItem = pRoot->FindNext()) != NULL ); }
| Добавлено @ 13:08 Должно быть примерно что то вроде этого, можно конечно и по другому, без классов но так намного лучше получится... |