Δημοσιεύτηκε: 06 Ιούλ 2011, 02:24
από Star_Light
Λοιπον νομιζω πως το καταλαβα.....

Εστω οι κομβοι 1 , 2 , 3
αρχικα ο head δειχνει στον 1 οποτε ο head->next δειχνει στον 2.
Και εστω οτι θελω να διαγραψω τον κομβο 2.

Αν εγω βαλω head=head->next ουσιαστικα μετακινω
τον head και τωρα αυτος δειχνει στον 2 ενω ο επομενος δεικτης του κομβου head δειχνει στον 3. (Η δομη του κομβου αποτελειται αποκλειστικα απο τα δεδομενα - id - value το αλλο ειναι απλα δεικτης... ειναι μεν και αυτο δεδομενο αλλα δεδομενο αποτυπωμενο οτι ξερεις εδω υπαρχει ενας δεικτης που θα δειξει καπου στον επομενο δηλαδη)

επομενως αν εγω θεσω dummy = head->next ειναι σαν να εχω θεσει απευθειας 1-> 3 συνδεση - ζευξη οποτε ειναι αυτο που θελουμε.

Στην συνεχεια θα ελευθερωσω τον 2 με την free(2); αλλα επειδη ο 2 περιγραφοταν απο τον απλο list τοτε δινω free(list)

και τελος μιας και εχω προχωρησει ενα βημα μπροστα πλεον μπορω να θεσω list=dummy...

πριν την free το χαος που λεμε... δεν υπαρχει τιποτα πισω για αυτο το θετω ετσι...

ειμαστε οκ?