Salve a tutti,non riesco a creare un algoritmo a cui ho pensato quindi non si tratta di un problema relativo ai meccanismi del C ,però attualmente uso questo linguaggio per programmare.Vengo al dunque:

Ho una struttura dati dinamica del tipo linked lista ,doppiamente linkata (così la lista si può scorrere dall'inizio fino alla fine e viceversa) in cui i campi info sono di tipo intero e possono contenere il numero 0 oppure 1,quindi le info della linked lista rappresentano un numero binario,ad esempio :

1<-->1<-->0<-->1

Avevo pensato di sviluppare una funzione RICORSIVA (la versione iterativa è già pronta e funzionante) che mi permettesse di sommare 1 al numero binario che rapressenta la lista; prendendo l'esempio dal numero di sopra e sommandoci 1,si ha :

1<-->1<-->1<-->0
(NB: nel caso in cui il numero ad esempio sia 1<-->1<-->1 ,sommando 1 ovviamente diventa 1<-->0<-->0<-->0).

La cosa importante e che la funzione abbia soltanto due parametri ,ad esempio il prototipo:
codice:
void somma_binary(tipo_nodo_lista  inizio_lista,int  r);
Esempio MAIN:
codice:
.
.
.
r=1;
somma_binary(inizio_lista,r);
.
.
.
Ho cercato in molti modi di realizzare questo algoritmo ma la difficoltà sta nel fatto che una volta che si arriva alla fine della lista e si somma 1 alla cifra presente nell'ultima posizione,dopo per ritornare all'inizio a ritroso con eventuale resto la cosa diventa complicata.
Grazie in anticipo!