Oppure

Loading
22/10/06 18:12
Hack
Ciao a tutti.
Sto provando a fare un programmino che, dopo aver inserito degli elementi in una lista così strutturata:
struct elemento {
char nome[20];
int eta;
struct elemento *pun;
};

cerca gli elementi doppi e li elimina.
Il mio problema è proprio nella parte in cui deve eliminare i doppioni.
Che ragionamento dovrei adottare?

Avevo pensato di scandire una prima volta la catena e di memorizzare in una array 1 se l'elemento corrente è uguale al precedente o 0 altrimenti.
Poi scandire nuovamente la catena e salvare in un puntatore la posizione dell'elemento che corrisponde all'indice dell'elemento dell'array con valore 1.
E procedere più o meno su questa strada.

Avete altri consigli da darmi?
Grazie mille.
aaa
22/10/06 19:08
Fr3d3R!K
su dmi.unisa.it/people/tucci/www/lp1/…
c'è un esempio di codice con la quale elimina i doppioni...ecco la descrizione fornita dallo stesso programmatore
/*
* File: liste1.c
* ------------------
* Questo programma legge una lista di interi e la inserisce in una
* lista concatenata di record allocati dinamicamente.
* Quindi la funzione stampaInv() stampa la stessa lista ma in ordine
* inverso.
* E' possibile eliminare i doppioni con la chiamata di elimdoppi().
* La funzione elimNeg() elimina invece i valori negativi.
* E' infine possibile stampare un qualsiasi valore della sequenza
* grazie alla funzione creaArray() che inserisce la lista dei valori
* in un array allocato dinamicamente, il quale consente l'accesso
* diretto ai valori tramite un indice.
*/[

ciao ciao
aaa
24/10/06 14:27
Hack
Se io volessi invertire l'ordine di una catena, come potrei fare?
aaa
04/11/06 0:30
ChaosTheory
ti crei una bella funzione che inserisce gli elementi in cima alla lista... quindi scandisci man mano gli elementi della prima lista e ti crei una seconda lista inserendoli sempre dall'inizio
aaa