Ragazzi vorrei rivolgere la vostra attenzione su questo programma C ke utilizza le liste...
//Si definisca la struttura dati CharElem per realizzare 1 lista doppiamente concatenata i cui elementi sono caratteri. Si scriva poi una funzione che, presi due puntatori C e D a CharElem, rappresentanti due liste di caratteri aventi la stessa lunghezza, restituisca la stringa ottenuta concatenando in maniera alternata un carattere preso da C e uno da D. In particolare, C deve essere scandita dal primo elemento all'ultimo mentre D dall'ultimo elemento al primo.
X esempio, se
C a--b--c--d
D e--f--g--h
la stringa risultante deve essere ahbgcfde
Io lo realizzato cosi'
Typedef struct dat
{
char a;
struct dati *p,*d;
} charelem;
char *primoc=null, *ultimod=null;
char *funzione (charelem *c, charelem *d)
{
char *stringa; unsigned i;
i=0;
for(c=primoc;c;c=c-)d)
{
*(stringa+i)=c-)a;
i+=2;
}
i=1;
for(d=ultimod;d;d=d-)p)
{
*(stringa+i)=d-)a;
i+=2;
}
return stringa;
}
}
scusate la poca leggibilita'....mi piacerebbe discutere in maniera principale della logica con cui dovrebbe essere realizzato un programma simile...