Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες

Σχετικά έγγραφα
Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες

Διάλεξη 08: ΛίστεςΙΙ Κυκλικές Λίστες. Διδάσκων: Παναγιώτης Ανδρέου

Υλοποίηση Λιστών. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές

Δοµές Δεδοµένων. 4η Διάλεξη Στοιχειώδεις Δοµές Δεδοµένων: Πίνακες και Λίστες. Ε. Μαρκάκης

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Στοιχειώδεις Δοµές Δεδοµένων Λίστες Κεφάλαιο 3 (3.3, 3.4, 3.7) Ε. Μαρκάκης Επικ. Καθηγητής

Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα

Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Στοιχειώδεις Δοµές Δεδοµένων Λίστες Κεφάλαιο 3 (3.3, 3.4, 3.7) Ε. Μαρκάκης Επικ. Καθηγητής

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Στοιχειώδεις Δομές Δεδομένων

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Στοίβες με Δυναμική Δέσμευση Μνήμης

Δομές Δεδομένων & Αλγόριθμοι

Διάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες)

Συλλογές, Στοίβες και Ουρές

Διάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες)

Διδάσκων: Παναγιώτης Ανδρέου

Εργαστήριο 5: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Διπλά Συνδεδεμένη Λίστα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Οντοκεντρικός Προγραμματισμός

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα.

Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

Βασικές Έννοιες Δοµών Δεδοµένων

Φροντιστήριο 4 Σκελετοί Λύσεων

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

Διάλεξη 14: Δομές Δεδομένων ΙΙI (Λίστες και Παραδείγματα)

υναµική έσµευση Μνήµης (συν.) ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 Εφαρµογή

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 2 ΛΥΣΕΙΣ Γραμμικές Δομές Δεδομένων, Ταξινόμηση

Δομές Δεδομένων & Αλγόριθμοι

Διάλεξη 11: Φροντιστήριο για Στοίβες. Διδάσκων: Παναγιώτης Ανδρέου. ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

4. Συνδεδεμένες Λίστες

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

υναµικές οµές εδοµένων (συν.) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα:

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες)

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

Δομές Δεδομένων (Data Structures)

Βασικές Δομές Δεδομένων

Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 26: Σωροί. Διδάσκων: Παναγιώτης Ανδρέου

ΕΡΓΑΣΤΗΡΙΟ 5 ΣΗΜΕΙΩΣΕΙΣ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο)

Δομές Δεδομένων. Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες

Επιλογές και Κριτήρια Σχεδιασμού ΑΤΔ Ανεξαρτήτως από Γλώσσα Υλοποίησης 24/4/2012

Στοίβες - Ουρές. Στοίβα (stack) Γιάννης Θεοδωρίδης, Νίκος Πελέκης, Άγγελος Πικράκης Τµήµα Πληροφορικής

Oι βασικές πράξεις (λειτουργίες) που ορίζονται για τον τύπο στοίβα αναφέρονται παρακάτω:

Προγραμματισμός Δομές Δεδομένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Δομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη

Σύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

Κατηγορίες Συμπίεσης. Συμπίεση με απώλειες δεδομένων (lossy compression) π.χ. συμπίεση εικόνας και ήχου

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Ενότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις

POINTERS, AGGREGATION, COMPOSITION

Διάλεξη 9: Αφηρημένοι Τύποι Δεδομένων. Διδάσκων: Παναγιώτης Ανδρέου

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

Κεφάλαιο 10 Ψηφιακά Λεξικά

Δομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

Συνδεδεμένη Λίστα (Linked List)

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

ΠΛΗ111. Ανοιξη Μάθηµα 5 ο. Ουρά. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

Οι λίστες, χάνοντας τα πλεονεκτήματα των πινάκων, λύνουν προβλήματα που παρουσιάζουν οι πίνακες

ΠΛΗ111. Ανοιξη Μάθηµα 3 ο. Συνδεδεµένες Λίστες. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή

Ουρά Προτεραιότητας (priority queue)

Φροντιστήριο 4 Σκελετοί Λύσεων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Αντικείμενα ως ορίσματα

Βασικές οµές εδοµένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Παναγιώτης Ανδρέου

Διαδικασιακός Προγραμματισμός

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

υναµικές οµές εδοµένων

Transcript:

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Κυκλικές Απλά Συνδεδεμένες Λίστες - Κυκλικές Διπλά Συνδεδεμένες Λίστες - Τεχνικές Μείωσης Χώρου

Size=3 head rear Κυκλικές Απλά Συνδεδεμένες Λίστες Μια κυκλική λίστα μπορεί να παίξει το ρόλο της ουράς, της οποίας και τα δύο άκρα είναι προσιτά με τη βοήθεια ενός μόνο δείκτη. C-LIST data next data next data next node node node Το πίσω άκρο, δηλαδή το άκρο όπου γίνονται οι εισαγωγές, είναι αυτό που δείχνεται από τον δείκτη στη λίστα (rear). Άρα οι εξαγωγές γίνονται ακριβώς μετά από τον κόμβο που δείχνεται από τον δείκτη rear. ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 2

Το πρόβλημα του Josephus Titus Flavius Josephus (37 100 μ. Χ.) N άτομα τοποθετούνται σε έναν κύκλο Αφαιρούμε το M-οστό άτομο, για κάποιο δοσμένο Μ (ξεκινώντας από το 1) Ξεκινώντας από Μ+1 αφαιρούμε πάλι το Μ- οστό άτομο κ.ο.κ. μέχρι να μείνει μόνο ένα άτομο Josephus(N,M): το άτομο που θα μείνει στο τέλος Josephus(9,5) 1 9 2 8 3 7 4 6 5 1 9 2 8 3 7 4 6 9 8 2 3 4 7 6 8 2 8 9 2 8 9 2 8 6 9 8 2 6 3 9 8 2 6 3 4 ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 3

Κυκλικά Απλά Συνδεδεμένης Λίστα (συν.) Άμεση λύση με χρήση κυκλικής λίστας Κατασκευή λίστας N κόμβων Ο τελευταίος κόμβος δείχνει στον πρώτο Διατρέχουμε τη λίστα μέχρι να αδειάσει Κυκλική διάσχιση χωρίς ειδικό κώδικα Διαγράφουμε το M-οστό στοιχείο κάθε φορά Εύκολη αφαίρεση στοιχείων ακολουθώντας δείκτες Δεν υπάρχει αλλαγή στις δομές (κλάσεις), μόνο στις συναρτήσεις διαγραφής και εισαγωγής Αναθέτουμε στον τελευταίο κόμβο να δείχνει στον πρώτο ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4

Το πρόβλημα του Josephus: Υλοποίηση package epl231; package epl231; public class Josephus { } public static void main(string[] args) { } int N = Integer.parseInt(args[0]); int M = Integer.parseInt(args[1]); JosephusNode head = new JosephusNode(1); JosephusNode cur = head; // Head Node for (int i = 2; i <= N; i++) { } JosephusNode newnode = new JosephusNode(i); cur.setnext(newnode); cur = newnode; cur.setnext(head); // Last node points to beginning while (cur!= cur.getnext()) { } for (int i = 1; i < M; i++) cur = cur.getnext(); System.out.println("Bye Bye " + cur.getnext().getvalue()); cur.setnext(cur.getnext().getnext()); // Farewell my friend System.out.println("Josephus Survivor is " + cur.getvalue()); public class JosephusNode { private int val; private JosephusNode next; JosephusNode(int v) { val = v; next = null; } int getvalue() { return val; } void setvalue(int v) { val = v;} JosephusNode getnext() { return next;} void setnext(josephusnode n) { next = n;} } ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5

Παραδείγματα εκτέλεσης N=9 N=1024 M=5 M=2 N=1055 = 1024 + 31 M=2 Bye Bye 5 Bye Bye 1 Bye Bye 7 Bye Bye 4 Bye Bye 3 Bye Bye 6 Bye Bye 9 Bye Bye 2 Josephus Survivor is 8 Bye Bye 2 Bye Bye 4 Bye Bye 641 Bye Bye 897 Bye Bye 257 Bye Bye 769 Bye Bye 513 Josephus Survivor is 1 Bye Bye 2 Bye Bye 4 Bye Bye 703 Bye Bye 959 Bye Bye 319 Bye Bye 831 Bye Bye 575 Josephus Survivor is 63 ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 6

Josephus ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 7

Josephus ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 8

Το πρόβλημα του Josephus: Υλοποίηση (συν.) Γενικά μπορούμε να υλοποιούμε λίστες με πίνακες (δεν είναι πάντα βολικό όμως) Χρειαζόμαστε 2 πίνακες: val[i]: στοιχείο κόμβου i next[i]: δείκτης επόμενου κόμβου Διαγραφή κόμβου γίνεται με ενημέρωση του next[] next[x] = next[next[x]] ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 9

Size=3 head ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 10 Κυκλικές Διπλά Συνδεδεμένες Λίστες Κυκλική λίστα της οποίας ο κάθε κόμβος δείχνει και στον επόμενο και στον προηγούμενο. Με την εισαγωγή κεφαλής σε τέτοιες λίστες παίρνουμε τις κυκλικές διπλά συνδεδεμένες λίστες με κεφαλή. CDL-LIST prev data next prev data next prev data next 4 5 6

Παρατηρήσεις 1. Το τι είδους λίστα θα χρησιμοποιήσετε εξαρτάται πάντα από το πρόβλημα 2. Συλλογή σκουπιδιών Στη Java δεν χρειάζεται να απελευθερώνουμε τη μνήμη όταν σταματάμε να χρησιμοποιούμε κάποιο δείκτη. Γίνεται αυτόματα από τον Garbage Collector Σε άλλες γλώσσες πρέπει να γίνει ρητά (στη C++ καλώντας την delete). Προσοχή στη χρήση της μνήμης! 3. Για κάθε τύπο λίστας, μπορούμε να ορίσουμε μία κλάση που να περιέχει όλες τις χρήσιμες μεθόδους ως μέλη Κάνει πιο εύκολο τον κώδικα για προγράμματα-πελάτες. Οι έλεγχοι γίνονται από τις μεθόδους της κλάσης ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 11

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 12 Τεχνικές Μείωσης Χώρου Οι διπλά συνδεδεμένες λίστες έχουν το μειονέκτημα πως απαιτούν την ύπαρξη δύο πεδίων δεικτών σε κάθε κόμβο. Πολλές από τις αποθηκευμένες πληροφορίες επαναλαμβάνονται κάθε δείκτης αποθηκεύεται σε δυο κόμβους, τον επόμενο και τον προηγούμενο με αποτέλεσμα τη σπατάλη χώρου.

Τεχνικές Μείωσης Χώρου Ορισμός (Exclusive or) a b = 0 a = b, δηλ. ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 13 a b a b (a b) a == b (a b) b == a 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 Aν a 1 a 2 a n, b 1 b 2 b n είναι συμβολοσειρές και a i b i = c i τότε ορίζουμε Ιδιότητες του Exclusive-or a b=b a a (b c) = (a b) c a a = 0 a 0 = a

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 14 Τεχνικές Μείωσης Χώρου Μέθοδος μείωσης χώρου Θεωρούμε ότι κάθε κόμβος της λίστας αποτελείται από δύο πεδία: το πεδίο data για αποθήκευση δεδομένων και το πεδίο Link. Ας υποθέσουμε πως η λίστα χρησιμοποιείται για την αποθήκευση n δεδομένων. Μ i : η διεύθυνση του κόμβου που περιέχει το i-οστό δεδομένο. Θεωρούμε επίσης δύο επιπλέον κόμβους με διευθύνσεις M n+1 και Μ n+2. Για κάθε κόμβο, το πεδίο Link περιέχει το exclusive-or της διεύθυνσης του κόμβου που προηγείται και της διεύθυνσης αυτού που ακολουθεί. Δηλαδή ( M i ). Link = M ( i 1) mod( n+ 2) M ( i+ 1) mod( n+ 2). Για τη διέλευση της λίστας απαιτούνται δύο δείκτες A, B, οι οποίοι να δείχνουν πάντοτε σε δυο διαδοχικούς κόμβους. Αρχικά οι A,B, δείχνουν στους κόμβους M n+1 και Μ n+2 αντίστοιχα.

Τεχνικές Μείωσης Χώρου next(β) = A Link(B) previous(a) = Link(A) B. ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 15

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 16 C Implementation From: https://www.geeksforgeeks.org/xor-linked-list-a-memory-efficient-doubly-linked-list-set-2/