que tienen datos jerárquica que dice así:¿Cómo construir un árbol no binario con o sin recursividad?
+----------------------+-------+
| 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 |
+----------------------+-------+
TUBO, LCD y de plasma son hijos de los televisores. FLASH es el hijo de los reproductores de MP3. REPRODUCTORES DE MP3, REPRODUCTORES DE CD Y RADIOS DE 2 VÍAS son los hijos de la ELECTRÓNICA PORTÁTIL. Usted obtiene el taladro.
Ahora, tengo un nodo de estructura que contiene su Id y sus hijos, y así sucesivamente, para construir un árbol. De esta manera:
struct Node
{
int id;
list<Node*> children;
}
Cada elemento se identifica mediante un ID, que es el número de fila (ELECTRONICS = 0, televisores = 1, y así sucesivamente), por lo que es fácil de averiguar quién son los hijos de una nodo.
Este es el árbol que intento construir. Este árbol no es binario, como puedes ver. Entonces, aplicar la recursividad no parece una idea fácil. Corrígeme si estoy equivocado.
Entonces, ¿cómo puedo hacer esto? ¡Ayuda!
Recursión lo hace más fácil donde tiene más de 1 ruta para explorar. Por lo tanto, 2 o más ramas hacen que la recursión sea una elección fácil. El enfoque alternativo (iteración) requiere que realice un seguimiento manual de sus progresos (es decir, haga el trabajo que la pila está haciendo en la versión recursiva). Pero para esta situación, la recursión no es necesaria. –