Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - togliere elementi ripetuti da una lista
Forum - C/C++ - togliere elementi ripetuti da una lista

Avatar
Hack (Ex-Member)
Newbie


Messaggi: 14
Iscritto: 09/05/2006

Segnala al moderatore
Postato alle 20:12
Domenica, 22/10/2006
Ciao a tutti.
Sto provando a fare un programmino che, dopo aver inserito degli elementi in una lista così strutturata:
Codice sorgente - presumibilmente C++

  1. struct elemento {
  2. char nome[20];
  3. int eta;
  4. struct elemento *pun;
  5. };


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.

PM Quote
Avatar
Fr3d3R!K (Ex-Member)
Expert


Messaggi: 589
Iscritto: 17/08/2006

Segnala al moderatore
Postato alle 21:08
Domenica, 22/10/2006
su http://www.dmi.unisa.it/people/tucci/www/lp1/liste1.c
c'è un esempio di codice con la quale elimina i doppioni...ecco la descrizione fornita dallo stesso programmatore
Testo quotato

/*
* 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


Il vero sapiente è colui che sa di non sapere.
    ____________________________________
Per qualsiasi aiuto NON scrivete messaggi in privato alla e-mail perchè li cancello senza manco aprirli. Solo qui.
PM Quote
Avatar
Hack (Ex-Member)
Newbie


Messaggi: 14
Iscritto: 09/05/2006

Segnala al moderatore
Postato alle 16:27
Martedì, 24/10/2006
Se io volessi invertire l'ordine di una catena, come potrei fare?

PM Quote
Avatar
ChaosTheory (Ex-Member)
Newbie


Messaggi: 1
Iscritto: 31/05/2006

Segnala al moderatore
Postato alle 1:30
Sabato, 04/11/2006
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

PM Quote