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?
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?