PDA

View Full Version : esercizi d'esame, consigli


mto89
14-12-2008, 10:56
ciao tutti all'esame devo fare qualcosa tipo trovare i valori delle liste L1 e L2 dopo la funzione elabora1, dove all'inizio L1->2->5->7->NULL e L2->NULL

struct Cella{
int valore;
struct Cella *next;
};
typedef struct Cella *Lista;
Lista elabora1(Lista LL, Lista tt);
Lista elabora2(Lista LL, Lista tt);
int main()
{
Lista L1 = NULL;
Lista L2 = NULL;
...
/*insieme di istruzioni che inizializzano lista L1 come in figura*/
...
L2 = elabora1(L1,L1);
...
return 0;
}
Lista elabora1(Lista LL, Lista tt)
{
Lista aux;
if (LL == NULL)
return NULL;
aux = elabora2(LL->next,LL);
if (tt != LL)
tt->next = LL;
return aux;
}
Lista elabora2(Lista LL, Lista tt)
{
Lista aux;
if (LL == NULL)
return NULL;
aux = elabora1(LL->next,tt);
LL->next = aux;
return LL;
}

Ora, non vi chedo il risultto, ma consigli su come procede di fronte a esercizi come questi, ho provato tramite disegni, facendone di nuovi dopo ogni chiamata di funzione ma sono diventato pazzo e perso!! voi come procedereste per la risoluzione?

FixFixFix
14-12-2008, 11:30
per risolveri secondo me ti conviene usare una struttura visiva del genere

__ = elabora1 ( 2,2 )
__ = elabora2 ( 5, 2 )
__ = elabora1 ( 7, 2 )
__ = elabora2 ( NULL, 7 )

e poi quando arrivi ad avere un valore di ritorno lo inserisci prima dell'uguale
e vai a ritroso...

mto89
14-12-2008, 16:46
per risolveri secondo me ti conviene usare una struttura visiva del genere

__ = elabora1 ( 2,2 )
__ = elabora2 ( 5, 2 )
__ = elabora1 ( 7, 2 )
__ = elabora2 ( NULL, 7 )

e poi quando arrivi ad avere un valore di ritorno lo inserisci prima dell'uguale
e vai a ritroso...

i numeri tra parentesi li hai messi a titolo di esempio vero? perchè non codide vengono passate sempre liste non semplici valori numerici no?

FixFixFix
14-12-2008, 21:18
si scusa non ti ho spiegato un gran che bene, ti ho messo i numeri perchè cmq la lista che viene passata è un puntatore ad un numero nel tuo caso... il numero rappresenta l'oggetto a cui sta puntando la lista in quel passaggio