Voglio scrivere un programma in Python che illustri la natura ad albero della ricorsione. Data una funzione ricorsiva (per esempio fibonacci (n)) dovrebbe esserci un modo per stampare la traccia di chiamata ad albero della funzione ricorsiva. Con la seguente funzione:
def fibonacci(n):
if n == 1 or n == 2:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
La stampa per n = 5 potrebbe essere simile a:
fibo(5)
fibo(4) fibo(3)
fibo(3) fibo(2) fibo(2) fibo(1)
fibo(2) fibo(1)
La soluzione dovrebbe essere il più "generale" possibile e non specifica per i numeri di Fibonacci in quanto voglio implementarla per ulteriori funzioni ricorsive.