Discussione: [C]Liste
View Single Post
Old 11-02-2010, 15:12   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Prima di tutto ti consiglio di scrivere così il prototipo della funzione:

struct cella *elimina(struct cella *punt, char *nome);

In questo modo separi la parte algoritmica da quella di IO, che è sempre una buona cosa.


Questo if non importa, il caso è già gestito automaticamente dal ramo else (mi sono sbagliato prima, non credevo che ci fosse l'if, credevo che eliminassi tutti glie elementi con nome uguale).

Codice:
		if(p->next==NULL)
			free(punt);
		else
		{
		temp=p;
		p=p->next;
		punt=p;
		free(temp);
		}
Anche questo if non serve:
Codice:
 if(temp->next!=NULL)//se è un elemento in mezzo alla lista
 {
	 p->next=temp->next;
	 free(temp);
 }
 else//se invece è la coda
 {
	 p->next=NULL;
	 free(temp);
 }
Il caso particolare è già contemplato dal ramo sopra.
Cosa succede se non viene trovato "nome" ?
cionci è offline   Rispondi citando il messaggio o parte di esso