Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Ciao a tutti.
Sto provando a fare un programmino che, dopo aver inserito degli elementi in una lista cosė strutturata:
Codice sorgente - presumibilmente C++
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.
/*
* 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.
*/[
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