Форум программистов, компьютерный форум CyberForum.ru

Визуальное отображение иерархии - C++

Восстановить пароль Регистрация
 
pincet
 Аватар для pincet
1096 / 757 / 79
Регистрация: 23.07.2010
Сообщений: 3,797
08.05.2011, 18:43     Визуальное отображение иерархии #1
Затык небольшой.

C++
1
2
3
4
class foo {
protected:
        list<foo*>subfoo;
// blah-blah-blah
Каждый экземпляр класса может содержать непустой список из экземпляров такого же класса. Никак не догоню, как вывести на экран иерархию классов в виде:
C++
1
2
3
4
5
6
7
8
foo0
 -foo01
 -foo02
   -foo020
   -foo021
     -foo0210
     -foo0211
 -foo03
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
09.05.2011, 13:05     Визуальное отображение иерархии #2
pincet, рекурсивно обходить. На каждом вызове функции печатать табуляцию, имя очередного экземпляра и рекурсивно вызывать ту же функцию для всех элементов списка этого экземпляра.
pincet
 Аватар для pincet
1096 / 757 / 79
Регистрация: 23.07.2010
Сообщений: 3,797
09.05.2011, 15:08  [ТС]     Визуальное отображение иерархии #3
пока только так получилось:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void Unit::showunits() {
    cout<<this->name<<endl;
    this->showunits(0);
};
void Unit::showunits(int i)  {
    list<Unit*>::iterator itr;
      for(itr=subunit.begin();itr!=subunit.end();++itr) {
       for(int j=0;j<i+1;j++) cout<<"-";
        cout<<(*itr)->name<<endl;   
          (*itr)->showunits(i+1);  
        }
}
както без параметра можно глубину рекурсии узнать?
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
09.05.2011, 15:16     Визуальное отображение иерархии #4
pincet, сомневаюсь... По крайней мере пока не получается придумать, как...
Yandex
Объявления
09.05.2011, 15:16     Визуальное отображение иерархии
Ответ Создать тему
Опции темы

Текущее время: 02:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru