Δημοσιεύτηκε: 21 Ιούλ 2011, 17:37
από stamatiou
migf1 έγραψε:
stamatiou έγραψε:
[snip]
Οκ, θα το κάνω τώρα

Οκ, αλλά μη βιαστείς. Φτιάξε καφεδάκι, και πάρε χαρτί & μολύβι για να σχεδιάζεις τις περιπτώσεις αν θεωρείς πως θα σε βοηθήσει. Νομίζω πως δεν είναι τόσο εύκολο όσο ενδεχομένως νομίζεις.

Για να σε βοηθήσω λιγάκι, εξέτασε πρώτα σε ξεχωριστό if την περίπτωση που ο κόμβος προς διαγραφή είναι ο 1ος της λίστας (πριν ξεκινήσεις δηλαδή να ασχολείσαι με το loop). ;)

Κώδικας: Επιλογή όλων
int del1st(List *list,int value)
{
Node *dummy;
dummy = (*list).head;
while(dummy != NULL)
{
if(dummy->data == value)
{
dummy->prev = dummy->next;
free(dummy);

}
return 0;
}

Υ.Γ. Δεν πίνω καφέ :lol: