stamatiou έγραψε:
[snip]
Ελπίζω επειδή δεν μπορώ να λύσω την άσκηση να μην χρειάζεται να ξαναδιαβάσω structs και pointers από την αρχή![]()
![]()
![]()
![]()
Μάλλον θα χρειαστεί να τα ξαναδιαβάσεις. Αν όχι από την αρχή, τουλάχιστον να τα φρεσκάρεις.
To dummy->prev δεν υπάρχει, δεν δουλεύει αυτό (δεν υπάρχει πεδίο prev μέσα στον Node). Όταν σου είπα να χρησιμοποιήσεις έναν βοηθητικό δείκτη prev εννοούσα να ορίσεις έναν προσωρινό δείκτη μέσα στη συνάρτηση, όπως έκανες και με τον dummy. Και να προνοήσεις ώστε να είναι πάντα ένα βήμα πίσω από τον dummy κατά την εκτέλεση του loop.
Άσχετο, το: (*list).head που έχεις γράψει είναι σωστό!
Λύση δεν θα δώσω ακόμα για τη διαγραφή, αφενός γιατί έχω δώσω ήδη πολύ έτοιμο κώδικα στα tutorials (ακόμα κι αυτό που λέω για τον prev παραπάνω, έχω παρουσιάσει ήδη παραπλήσιας λογικής κώδικα, π.χ. στην list_destroy() ) κι αφετέρου διότι αυτά τα πράγματα τα μαθαίνει κανείς μόνο αν γράψει κώδικα μόνος του και πειραματιστεί.
Όσα έχουμε αναλύσει ήδη στα tutorials είναι υπερ-αρκετά για να γραφτεί η συνάρτηση: list_del1st( List *list, int value)... αρκεί να έχουν γίνει όντως κατανοητά



