У меня есть иерархические данные, которые выглядят так:
+----------------------+-------+
| name | depth |
+----------------------+-------+
| ELECTRONICS | 0 |
| TELEVISIONS | 1 |
| TUBE | 2 |
| LCD | 2 |
| PLASMA | 2 |
| PORTABLE ELECTRONICS | 1 |
| MP3 PLAYERS | 2 |
| FLASH | 3 |
| CD PLAYERS | 2 |
| 2 WAY RADIOS | 2 |
+----------------------+-------+
TUBE, LCD и PLASMA являются потомками TELEVISIONS.FLASH - дитя MP3-плееров.MP3-плейеры, CD-плейеры и 2 WAY RADIOS - дети ПОРТАТИВНОЙ ЭЛЕКТРОНИКИ.Вы получаете упражнение.
Теперь у меня есть структурный узел, который содержит его идентификатор и его дочерние элементы, и так далее, чтобы построить дерево.Например:
struct Node
{
int id;
list<Node*> children;
}
Каждый элемент идентифицируется идентификатором, который является номером строки (ELECTRONICS = 0, TELEVISIONS = 1 и т. Д.), Поэтому легко определить, кто является детьмиузла.
Это дерево, которое я пытаюсь построить.Это дерево не является двоичным, как вы можете видеть.Таким образом, применение рекурсии не кажется легкой идеей.Поправь меня, если я ошибаюсь.
Так как я могу это сделать?Помогите!