Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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

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