22.12.2012, 22:00. Просмотров 428. Ответов 0
Мне необходимо создать дерево соответствующее определенной конструкции (Например: ПК(корень) и он состоит из принтера, системного блока, мыши и т.д. Системный блок стоит....). В листьях хранится минимальный вес.
Задаю класс для хранения дерева
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| #define N 50;
#define number_sons 7;
class Class
{
int size;
public:
struct item{
item *next[number_sons]; //массив указателей на 7 сыновей
char name[N];
int x; // вес
item *parent;
};
item* root;
Class(void);
~Class(void);
void Add(const char tittle[], const char parent[], int data);
}; |
|
Помогите оформить функцию добавления нового узла. На входе название эл-та(tittle), имя отца (parent) и вес (если не лист = 0)
C++ |
1
2
| Class tree;
tree.Add("Monitor","PC",0);// Добавление нового узла (0 -т.к. не лист) |
|
И конструкцию выбираю я сам
Добавлено через 14 часов 45 минут
я предполагаю, что дерево необходимо пройти в глубину и сравнить имя узла с parent, если совпадает записать в свободный указатель. Но написать это не получается.
P.S. с названием темы я поторопился
Добавлено через 7 часов 4 минуты
как рекурсивно обойти дерево в глубину?