Δυναμική Διατήρηση Γραμμικής Διάταξης Διατηρεί μια γραμμική διάταξη δυναμικά μεταβαλλόμενης συλλογής στοιχείων. Υποστηρίζει τις λειτουργίες: Έλεγχος της σειράς διάταξης δύο στοιχείων x και y. Εισαγωγή νέου στοιχείου y αμέσως μετά από το στοιχείο x. x y yx Μπορούμε να επιτύχουμε χρόνο ανά πράξη, αντισταθμιστικά ή στην χειρότερη περίπτωση (με πιο περίπλοκη δομή) Διαγραφή στοιχείου y. y
Δυναμική Διατήρηση Γραμμικής Διάταξης Απλοϊκές λύσεις : Διπλά συνδεδεμένη λίστα : για εισαγωγή/διαγραφή, για ερώτημα διάταξης Ισορροπημένο δυαδικό δένδρο : για κάθε λειτουργία
Δυναμική Διατήρηση Γραμμικής Διάταξης Δημιουργούμε μια σύνθετη δομή που αποτελείται από : α) Μια διπλά συνδεδεμένη λίστα β) Ακέραιες ετικέτες : κάθε στοιχείο έχει ετικέτα τέτοια ώστε αν και μόνο αν το προηγείται του στη λίστα Τοποθετούμε στα άκρα της λίστας δύο (σταθερά) επιπλέον στοιχεία και με και όπου αρκετά μεγάλος ακέραιος.
Δυναμική Διατήρηση Γραμμικής Διάταξης Πως καθορίζουμε τις τιμές ; Έστω τα στοιχεία της λίστας, και έστω ένα νέο στοιχείο που πρέπει να εισαχθεί μεταξύ του και του. Αν υπάρχει χώρος στο διάστημα, δηλαδή, τότε θέτουμε Ορίζουμε τη διαφορά των ετικετών δύο στοιχείων και ως Αν τότε πρέπει να επαναριθμήσουμε τις ετικέτες κάποιων στοιχείων ώστε να έχουμε χώρο για την εισαγωγή του νέου στοιχείου.
Δυναμική Διατήρηση Γραμμικής Διάταξης ? τοπική επαναρίθμηση Αν τότε πρέπει να γίνει επαναρίθμηση κάποιου διαστήματος
Δυναμική Διατήρηση Γραμμικής Διάταξης Έστω. Η ιδέα είναι να βρούμε δύο στοιχεία και με και η διαφορά ετικετών να είναι αρκετά μεγάλη, έτσι ώστε αν επαναριθμήσουμε τις ετικέτες των στοιχείων να έχουμε χώρο για το νέο στοιχείο. … … Αν τότε και αναζητούμε το στα δεξιά του. Αν τότε και αναζητούμε το στα αριστερά του.
Δυναμική Διατήρηση Γραμμικής Διάταξης Έστω. Υποθέτουμε ότι. (Η περίπτωση είναι συμμετρική.) Για ευκολία ορίζουμε τον παρακάτω συμβολισμό : και. Αναζητούμε το μικρότερο δείκτη τέτοιον ώστε. … … … …
Δυναμική Διατήρηση Γραμμικής Διάταξης Αναζητούμε το μικρότερο δείκτη τέτοιον ώστε. … … … …… Έστω ότι δεν υπάρχει τέτοιο. Για απλότητα υποθέτουμε. Επιλέγουμε ακέραιο τέτοιο ώστε. Τότε για κάθε ισχύει. Άρα Αφού, έχουμε Συνεπώς αρκεί να επιλέξουμε.
Δυναμική Διατήρηση Γραμμικής Διάταξης Αναζητούμε το μικρότερο δείκτη τέτοιον ώστε. … … … … Για η αναζήτηση του είναι εγγυημένα επιτυχής και επομένως μπορούμε να επαναριθμήσουμε τις ετικέτες των στο διάστημα Έχουμε άρα μπορούμε να μοιράσουμε ομοιόμορφα τις ετικέτες των στοιχείων σε ένα διάστημα ακεραίων. Συνεπώς, μετά την επαναρίθμηση, οι νέες διαδοχικές ετικέτες θα διαφέρουν τουλάχιστον κατά 2.
Δυναμική Διατήρηση Γραμμικής Διάταξης Επιδόσεις Το κόστος ανά πράξη είναι : χειρότερης περίπτωσης για διαγραφή ή ερώτημα διάταξης αντισταθμιστικό για εισαγωγή
Δυναμική Διατήρηση Γραμμικής Διάταξης Υποθέσαμε ότι γνωρίζουμε τον αριθμό στοιχείων που θα εισαχθούν στη δομή. Μπορούμε να χειριστούμε την περίπτωση μεταβλητού αριθμού στοιχείων με διπλασιασμό/υποδιπλασιασμό του (όπως στους δυναμικούς πίνακες) : Αν με την επόμενη εισαγωγή ο αριθμός των στοιχείων της δομής γίνει τότε θέτουμε Αν με την επόμενη διαγραφή ο αριθμός των στοιχείων της δομής γίνει τότε θέτουμε Επιδόσεις Με αυτό τον τρόπο έχουμε κόστος : χειρότερης περίπτωσης για ερώτημα διάταξης αντισταθμιστικό για εισαγωγή, όπου ο μέγιστος αριθμός στοιχείων στη δομή αντισταθμιστικό για διαγραφή
Δυναμική Διατήρηση Γραμμικής Διάταξης Μπορούμε να επιτύχουμε σταθερό αντισταθμιστικό χρόνο ανά εισαγωγή και διαγραφή, διατηρώντας αρίθμηση δύο επιπέδων : Δομή δύο επιπέδων 0? 0?0? Χωρίζουμε τα στοιχεία σε ομάδες των. Τα στοιχεία αποθηκεύονται στο δεύτερο επίπεδο. Το πρώτο επίπεδο αποθηκεύει ένα στοιχείο ανά ομάδα.