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


Автор: Still 26.10.2007, 00:44
Есть задача: закодировать дерево не рекурсивно.

Дерево следующее:
a --> b and e
b --> c and d
e --> f and g
f --> h and i

Я плохо понимаю суть. Прошу хотя бы направление для дальнейшей работы, возможно что-то более детальное. Спасибо.

Автор: ksili 26.10.2007, 05:16
Что значит закодировать?
Код

a --> b and e
b --> c and d
e --> f and g
f --> h and i

тоже в некотором роде код  smile 

Автор: Lazin 26.10.2007, 07:32
Цитата(Still @  26.10.2007,  00:44 Найти цитируемый пост)

Дерево следующее:
a --> b and e
b --> c and d
e --> f and g
f --> h and i

Я плохо понимаю суть. Прошу хотя бы направление для дальнейшей работы, возможно что-то более детальное.

Узел a связан с узлами b и e, узел b связан c и d... те узел а - корень дерева
Код

    a
   / \
 b    e
 /\   /\
c d  f  g
    /\
   h  i 

Для представления узла дерева можно использовать примерно такую структуру
Код

struct Node;
struct Node
{
 ***data***
 Node* left;
 Node* right;
};

Автор: Still 26.10.2007, 15:02
Lazin, спасибо, нечто знакомое. То есть все дерево это будет структура с соответственными подструктурами? 

Автор: ksili 27.10.2007, 06:56
Still, в приведённом коде дерево является модификацией однонаправленного списка. Почитай про списки. там просто каждый элемент списка содержит указатель на элемент того же типа. В данном случае - узел дерева содержит два указателя.

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