PDA

Visualizza la versione completa : [c]Prese due liste concatenarle in una nuova lista


ubuntuunixc
05-11-2010, 00:48
ciao ragazzi

ho il seguente problema

date due liste L1 ed L2 devo fonderle in un unica lista L3 con una funzione RICORSIVA

devo copiare il primo elementto di L1 ed il primo elemento di L2 poi il secondo di L1 ed il secondo di L2 e così via

le due liste hanno lunghezza diverse

per ora ho fatto questo codice ma non va dove sbaglio ?



struct elemento *FUSIONE(struct elemento *L1,struct elemento *L2,
struct elemento *testa)
{
if ((L1!=NULL)||(L2!=NULL))
{


}
else
return testa;

}

simo_85
05-11-2010, 02:21
Originariamente inviato da ubuntuunixc
per ora ho fatto questo codice ma non va dove sbaglio ?


struct elemento *FUSIONE(struct elemento *L1,struct elemento *L2,
struct elemento *testa)
{
if ((L1!=NULL)||(L2!=NULL))
{
:madai!?:
}
else
return testa;
}
Neanche a me, chissà perchè..

ubuntuunixc
05-11-2010, 12:16
scusa per la fretta ho copiato male




struct elemento *FUSIONE(struct elemento *L1,struct elemento *L2,
struct elemento *testa)
{
struct elemento *app;
if ((L1!=NULL)||(L2!=NULL))
{
if (testa==NULL)
{
testa=(struct elemento *)malloc(sizeof (struct elemento));
app=testa;
}
else
if (L1!=NULL)
{
app->inf=L1->inf;
app=app->next;
app=(struct elemento *)malloc(sizeof (struct elemento));
if (L2!=NULL)
{
app->inf=L2->inf;
app=app->next;
app=(struct elemento *)malloc(sizeof (struct elemento));
}
return FUSIONE(L1->next,L2->next,app);
}
else
{
app->inf=L2->inf;
return FUSIONE(NULL,L2->next,app);
}
}
else
{
app=NULL;
return testa;
}
}




il codice mi va in loop

ubuntuunixc
05-11-2010, 17:52
per favore mi date una mano :cry: :dhò: :confused:

Loading