|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2006
Messaggi: 51
|
[C] Chiarimento esercizio sulle liste
Questo è l'esercizio
Sia data una struttura typedef struct lst {int valore; struct lst *succ;}elemento; che rappresenta un elemento di una lista di interi. Il campo valore rappresenta il valore dell’elemento, ed `e compreso fra −100 e 100 (estremi inclusi); il campo succ `e il puntatore all’elemento successivo della lista. Si scriva la funzione elemento *RimuoviDoppioni (elemento *p) che, dato il puntatore ad una lista non ordinata di interi, restituisca il puntatore alla lista ottenuta da p rimuovendo (e deallocando) tutti i doppioni (elementi il cui campo valore `e gi`a presente nella lista). Suggerimento: si consiglia di risolvere il problema facendo una sola passata sui dati ed eventualmente utilizzando uno o pi`u array ausiliari (ma meno memoria utilizzate meglio `e). 2 domande: 1)Ammettiamo che ho 3 elementi della lista: elemento1, elemento2 ed elemento3.Se ad esempio voglio eliminare e deallocare l'elemento2, avendo solo il puntatore all'elemento1, come devo fare? 2)A volte ho bisogno di eliminare l'elemento2 ed avere sottoforma di lista elemento1 ed elemento3, quindi elemento1 deve puntare ad elemento3. Per assegnare al campo *succ di elemento1 il puntatore ad elemento3 va bene fare come vi indico sotto? -elemento1->succ=(elemento1->succ)->succ In pratica assegno al puntatore dell'elemento1 all'elemento2 il puntatore di elemento2 all'elemento3.
__________________
http://risorsefree.netsons.org/ |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jun 2007
Messaggi: 1232
|
Bhè alla prima domanda ti sei risposto da solo con la seconda. Comunque in generale è tramite i puntatori agli elementi successivi che scorri la lista e poi avere i riferimenti agli elementi che ti servono.
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
e l'ultimo elemento fallo puntare a NULL.
occhio che devi fare in modo di non spezzare la lista se cancelli un elemento centrale.
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:43.











ho concluso con: kvegeta, doctordb, Leland Gaunt.








