Διαφορά μεταξύ της απλώς συνδεδεμένης λίστας και της διπλά συνδεδεμένης λίστας

Anonim

Η λίστα συνδέσεων είναι μια γραμμική δομή δεδομένων που χρησιμοποιείται για την αποθήκευση μιας συλλογής δεδομένων. Μια συνδεδεμένη λίστα εκχωρεί μνήμη στα στοιχεία της ξεχωριστά στο δικό της μπλοκ μνήμης και η συνολική δομή αποκτάται συνδέοντας αυτά τα στοιχεία ως συνδέσεις σε μια αλυσίδα. Μια απλά συνδεδεμένη λίστα αποτελείται από μια ακολουθία κόμβων και κάθε κόμβος έχει αναφορά στον επόμενο κόμβο στην ακολουθία. Μια διπλά συνδεδεμένη λίστα περιέχει μια ακολουθία κόμβων στην οποία κάθε κόμβος περιέχει μια αναφορά στον επόμενο κόμβο καθώς και στον προηγούμενο κόμβο.

Ιδιαίτερα Συνδεδεμένη Λίστα

Κάθε στοιχείο σε μία απλώς συνδεδεμένη λίστα έχει δύο πεδία όπως φαίνεται στο Σχήμα 1. Το πεδίο δεδομένων περιέχει τα αποθηκευμένα δεδομένα και το επόμενο πεδίο περιέχει την αναφορά στο επόμενο στοιχείο στην αλυσίδα. Το πρώτο στοιχείο της συνδεδεμένης λίστας αποθηκεύεται ως επικεφαλής της συνδεδεμένης λίστας.

Η Εικόνα 2 απεικονίζει μια απλώς συνδεδεμένη λίστα με τρία στοιχεία. Κάθε στοιχείο αποθηκεύει τα δεδομένα του και όλα τα στοιχεία εκτός από το τελευταίο αποθηκεύουν αναφορά στο επόμενο στοιχείο. Το τελευταίο στοιχείο έχει μηδενική τιμή στο επόμενο πεδίο. Μπορείτε να έχετε πρόσβαση σε οποιοδήποτε στοιχείο της λίστας ξεκινώντας από το κεφάλι και ακολουθώντας τον επόμενο δείκτη μέχρι να συναντήσετε το απαιτούμενο στοιχείο.

Κάθε στοιχείο σε μια διπλά συνδεδεμένη λίστα έχει τρία πεδία, όπως φαίνεται στο σχήμα 3. Παρόμοια με τη λίστα μεμονωμένων συνδέσεων, το πεδίο δεδομένων διατηρεί τα αποθηκευμένα δεδομένα και το επόμενο πεδίο περιέχει την αναφορά στο επόμενο στοιχείο στην αλυσίδα. Επιπλέον, το προηγούμενο πεδίο περιέχει την αναφορά στο προηγούμενο στοιχείο της αλυσίδας. Το πρώτο στοιχείο της συνδεδεμένης λίστας αποθηκεύεται ως επικεφαλής της συνδεδεμένης λίστας.

Το σχήμα 4 απεικονίζει έναν διπλά συνδεδεμένο κατάλογο με τρία στοιχεία. Όλα τα ενδιάμεσα στοιχεία αποθηκεύουν αναφορές στο πρώτο και τα προηγούμενα στοιχεία. Το τελευταίο στοιχείο στη λίστα διατηρεί μηδενική τιμή στο επόμενο πεδίο και το πρώτο στοιχείο στη λίστα διατηρεί μηδενική τιμή στο προηγούμενο πεδίο. Η διπλά συνδεδεμένη λίστα μπορεί να μετακινηθεί προς τα εμπρός ακολουθώντας τις επόμενες αναφορές σε κάθε στοιχείο και ομοίως μπορεί να μετακινηθεί προς τα πίσω χρησιμοποιώντας τις προηγούμενες αναφορές σε κάθε στοιχείο.

Ποια είναι η διαφορά μεταξύ του Singly Linked List και του Doubly Linked List;

Κάθε στοιχείο της απλώς συνδεδεμένης λίστας περιέχει μια αναφορά στο επόμενο στοιχείο της λίστας, ενώ κάθε στοιχείο της διπλά συνδεδεμένης λίστας περιέχει αναφορές στο επόμενο στοιχείο καθώς και στο προηγούμενο στοιχείο της λίστας. Οι διπλά συνδεδεμένες λίστες απαιτούν περισσότερο χώρο για κάθε στοιχείο της λίστας και οι στοιχειώδεις λειτουργίες, όπως η εισαγωγή και η διαγραφή, είναι πιο πολύπλοκες αφού έχουν να κάνουν με δύο αναφορές. Ωστόσο, οι λίστες διπλής σύνδεσης επιτρέπουν ευκολότερο χειρισμό, καθώς επιτρέπει τη διασταύρωση της λίστας προς τα εμπρός και προς τα πίσω.