Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Построить в псевдографике


Автор: Mark4545 13.10.2009, 15:17
Имееться 10 ячеек дерева имеющих структуру.
[code=cpp]
struct tree {
           char  name;  // Имя УЗЛА
Код

           int level; // Уровень вложености
           struct tree *parent; // Указатель на узел родитель
           int nChilds; // кол-во детей
           struct tree *child[ 25 ]; // Указатели на детей.
};

Ума не приложу как построить  дерево например
Код

|-A     // Дети A : L  B
|--L   // Дети L: S
|----S // Дети S нет
|--B  // Дети B: C
|----C // Дети С: E Y
|------E // Дети E: net
|------Y // Дети Y: X F N
|--------X  // Дети Нет
|--------F  // Дети Нет
|--------N  //Дети Нет



Автор: zim22 13.10.2009, 15:38
Цитата(Mark4545 @  13.10.2009,  15:17 Найти цитируемый пост)
Ума не приложу как построить  дерево

дерево визуально строится также, как и обходится. рекурсивно.

Автор: Mark4545 13.10.2009, 15:59
Обходил я без рекурсии его, если можно ссылку на пример, просто все темы здесь обсуждаемые это не построение дерева а обход и занесение в структуру ( это выполнено )

Автор: zim22 13.10.2009, 17:19
Код

struct node { Item item; node *l, *r; }
typedef node *link;

void printnode(Item x, int h) {
  for (int i = 0; i < h; i++) cout << " ";
  cout << x << endl;
}

void show(link t, int h) {
  if (t == 0) { printnode('*', h); return; }
  show(t->r, h + 1);
  printnode(t->item, h);
  show(t->l, h + 1);
}

Автор: Mark4545 13.10.2009, 22:23
Для моего типа структуры узла не совсем подходит, хотя бы алгоритм подскажите голову сломал уже как прорисовать.

Автор: ИванМ 13.10.2009, 22:55
Код

void draw_tree(tree* tr, int n=1)
{
    std::cout<<'|'<<std::setfill('-')<<std::setw(n+1)<<tr->name<<std::endl;
    for(int i=0;i<tr->nChilds;i++)
    {
        draw_tree(tr->child[i], n+1);
    }
}


Автор: Mark4545 13.10.2009, 23:46
спасибо вопрос решен.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)