En general, una función recursiva funciona almacenando datos en la pila. Cada vez que va un nivel más profundo, agrega datos a la pila. Cuando finaliza el método, los datos se eliminan de la pila nuevamente.
La solución no recursiva sería almacenar datos en una matriz o lista y recorrer la lista. O, más probablemente, una cola. Empujaría sus datos al final de la cola y abriría los datos desde el comienzo de la cola (primero en entrar, primero en salir) y básicamente caminaría por toda la cola hasta que no haya más datos dentro de ella.
Pero además de esto, no existe una solución genérica real para cambiar entre uno y otro. Esto se debe a que puede incluir todo tipo de optimizaciones en la solución no recursiva. (Por ejemplo, una función recursiva también podría necesitar que se pasen algunos datos fijos con cada llamada. Una versión no recursiva simplemente la almacenaría una vez y la volvería a usar.
- Sea X la solución del costo O (n ^ k) para un problema Q en NP-c. ¿Implicaría que existe una solución de costo O (n ^ k) para todos los problemas Q 'en NP-c?
- ¿Por qué obtener más puntos de datos soluciona el problema de la alta variación en un algoritmo de aprendizaje automático?
- Cómo explicar el concepto de un algoritmo a un niño
- ¿Qué prueba de primalidad se usa en las aplicaciones de software convencionales?
- Cómo convertir el ciclo while en declaraciones if