Questo dovrebbe funzionare anche se è piuttosto inefficente.codice:somma_binary(inizio_lista, r) { if (n == 0) return; if(inizio_lista->left == NULL) { inizio_lista->left = allocazione_memoria; inizio_lista->left->right = inizio_lista; inizio_lista->left->left = NULL; inizio_lista->left->info = 0; } l->info += r & 1; if(l->info & 2) somma_binary(l->left, 1); l->info &= 1; somma_binary(l->left, r<<1); }
Però puoi sommare solo numeri positivi, e non considera il caso in cui passi all'inizio un NULL, inoltre avrai sempre uno 0 in testa...
Va richiamata con l'ultimo elemento...
E' più semplice implementare una funzione con più parametri e creare una macro che la richiami![]()