Διαχρονικές δομές δεδομένων

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Διαχρονικές δομές δεδομένων"

Transcript

1 Διαχρονικές δομές δεδομένων Μια τυπική δομή δεδομένων μεταβάλλεται με πράξεις εισαγωγής ή διαγραφής Π.χ. κοκκινόμαυρο δένδρο εισαγωγή Αποκατάσταση ισορροπίας Μια τέτοια δομή είναι εφήμερη: Δεν έχουμε πρόσβαση στις προηγούμενες καταστάσεις (εκδοχές) της δομής. Διαχρονική δομή: Επιτρέπει την πρόσβαση σε όλες τις εκδοχές της δομής.

2 Διαχρονικές δομές δεδομένων Διαχρονική δομή: Επιτρέπει την πρόσβαση σε όλες τις εκδοχές της δομής. εισαγωγή διαγραφή εκδοχές

3 Διαχρονικές δομές δεδομένων Διαχρονική δομή: Επιτρέπει την πρόσβαση σε όλες τις εκδοχές της δομής. Μερική Διαχρονικότητα: Επιτρέπει την πρόσβαση σε όλες τις εκδοχές της δομής, αλλά είναι δυνατόν να τροποποιηθεί μόνο η τελευταία εκδοχή. Ολική Διαχρονικότητα: Επιτρέπει τόσο την πρόσβαση όσο την τροποποίηση σε όλες τις εκδοχές της δομής. Για να υποστηρίξουμε τη διαχρονικότητα της δομής εισάγουμε την ακόλουθη παράμετρο : Αριθμός εκδοχής: Η αρχική δομή αποτελεί την εκδοχή 0. Η i-οστή πράξη τροποποίησης δημιουργεί την εκδοχή i. Παράμετροι απόδοσης: αριθμός στοιχείων στην τρέχουσα εκδοχή συνολικός αριθμός τροποποιήσεων

4 Διαχρονικές δομές δεδομένων Απλοϊκές λύσεις Κάθε εκδοχή δημιουργεί ένα πλήρες αντίγραφο. εκδοχή head tail α β γ δ ε ins(0,α) ins(1,δ) ins(,ε) ins(3,γ) del(4,a) ins(5,β) del(5,γ)

5 Διαχρονικές δομές δεδομένων Απλοϊκές λύσεις Κάθε εκδοχή δημιουργεί ένα πλήρες αντίγραφο. Απαιτεί χρόνο και χώρο ανά τροποποίηση. Δεν αποθηκεύουμε καμία εκδοχή, αλλά μόνο την ακολουθία τροποποιήσεων. Για να πραγματοποιήσουμε μια πρόσβαση στην i-οστή εκδοχή κατασκευάζουμε τη δομή έως αυτή την εκδοχή από την αρχή. Απαιτεί χρόνο για την κάθε πρόσβαση στην i-οστή εκδοχή. Συνδυασμός των δύο παραπάνω: Αποθηκεύουμε κάθε k-οστή εκδοχή. Για να πραγματοποιήσουμε μια πρόσβαση στην i-οστή εκδοχή κατασκευάζουμε τη δομή έως αυτή την εκδοχή από την εκδοχή. Για οποιαδήποτε επιλογή του k έχουμε αύξηση χώρου ή χρόνου κατά παράγοντα

6 Διαχρονικές δομές δεδομένων [Driscoll, Sarnak, Sleator and Tarjan 89] : Γενικές μέθοδοι μετατροπής εφήμερης δομής σε διαχρονική. Υποθέτουμε ότι η εφήμερη δομή που θα μετατρέψουμε σε διαχρονική αποθηκεύει τα δεδομένα σε συνδετικά στοιχεία, δηλαδή σε κόμβους που συνδέονται με δείκτες (π.χ. συνδεδεμένη λίστα, δένδρο αναζήτησης κλπ) Για το χειρισμό της δομής έχουμε : πεδία πληροφορίας (π.χ. μέγεθος της δομής) πεδία προσβάσεως (π.χ. δείκτης στη ρίζα του δένδρου) Κάθε εφήμερος κόμβος αποθηκεύει : πεδία πληροφορίας (π.χ. κλειδί, πληροφορία ισορροπίας κλπ) πεδία συνδέσεως (π.χ. αριστερό/δεξί παιδί, γονέας κλπ) εφήμερος κόμβος πεδία πληροφορίας πεδία συνδέσεως

7 Διαχρονικές δομές δεδομένων Γενική Ιδέα Αποθηκεύουμε τους δείκτες προσβάσεως της δομής σε ένα πίνακα ο οποίος δεικτοδοτείται από τον αριθμό εκδοχής. εκδοχή δείκτης προσβάσεως m Η δομή αποτελείται από διαχρονικούς κόμβους οι οποίοι αποθηκεύουν τα ίδια πεδία με τους εφήμερους κόμβους, αλλά πολλαπλές φορές. Κάθε τιμή ενός πεδίου φέρει μια «ετικέτα εκδοχής» στην οποία αναγράφεται ο αριθμός της εκδοχής που τροποποίησε το πεδίο. Οι ετικέτες εκδοχής βοηθούν για την πλοήγηση στις κατάλληλες εκδοχές της δομής.

8 Μερική διαχρονικότητα με «μακρείς κόμβους» Κάθε διαχρονικός κόμβος μπορεί να αποθηκεύσει ένα αυθαίρετο αριθμό από τιμές κάθε πεδίου. Κάθε τιμή ενός πεδίου φέρει μια «ετικέτα εκδοχής» στην οποία αναγράφεται ο αριθμός της εκδοχής που τροποποίησε το πεδίο. Επιπλέον, ένας διαχρονικός κόμβος φέρει τη δική του ετικέτα εκδοχής, η οποία υποδεικνύει την εκδοχή στην οποία δημιουργήθηκε ο κόμβος. Πλοήγηση στην i-οστή εκδοχή: διαχρονικός κόμβος Ξεκινάμε από τον κατάλληλο δείκτη προσβάσεως της i-οστής εκδοχής. Όταν βρισκόμαστε σε ένα διαχρονικό κόμβο P και θέλουμε να ανακτήσουμε την τιμή ενός πεδίου f, αναζητούμε την τιμή του πεδίου με μέγιστη ετικέτα χρόνο για να βρούμε την κατάλληλη ετικέτα εκδοχή 5 9 πρόσβαση στην εκδοχή όταν έχουμε εκδοχές.

9 Μερική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) 1 Ε

10 Μερική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) 1 Γ Ε

11 Μερική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) 1 Γ Ε 3 Μ

12 Μερική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) 1 Α 4 Γ Ε 3 Μ

13 Μερική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) 1 Ε 3 4 Γ Μ 5 Α Π

14 Μερική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) 1 Ε 3 4 Γ 6 Μ 5 Α Ι Π

15 Μερική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) 1 Ε 3 4 Γ 6 Μ 5 Α Ι 7 Π Η

16 Μερική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) 1 Ε 3 4 Γ 6 Μ 5 Α Ι 7 8 Π Η Λ

17 Μερική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) 1 Ε 3 4 Γ 6 Μ 5 Α Ι 7 8 Π Η 9 Κ Λ

18 Μερική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) 1 Ε 3 4 Γ 6 Μ 5 Α Ι Π Η 9 Λ Ο Κ

19 Μερική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) 1 Ε 3 4 Γ 6 Μ 5 11 Α Ι Η Λ 9 10 Ο Π 11 Κ

20 Μερική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) 1 Ε 3 4 Γ 6 Μ 5 11 Α 1 Ι Η Λ 9 10 Ο Π 11 Κ

21 Μερική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) 1 13 Ε Γ 13 6 Μ 5 11 Α 1 Ι Η Λ 9 10 Ο Π 11 Κ

22 Ολική διαχρονικότητα με «μακρείς κόμβους» Στην περίπτωση της ολικής διαχρονικότητας, οι εκδοχές της δομής δεν είναι ολικά διατεταγμένες, αλλά αναπαριστώνται από ένα δένδρο εκδοχών. Μερική Διαχρονικότητα ins(0,a) ins(1,d) ins(,c) ins(3,b) del(4,d) = επιτρέπεται μόνο προσπέλαση = επιτρέπεται προσπέλαση και τροποποίηση

23 Ολική διαχρονικότητα με «μακρείς κόμβους» Στην περίπτωση της ολικής διαχρονικότητας, οι εκδοχές της δομής δεν είναι ολικά διατεταγμένες, αλλά αναπαριστώνται από ένα δένδρο εκδοχών. Ολική Διαχρονικότητα 0 1 ins(0,a) 6 ins(1,b) ins(1,d) 7 del(6,a) 5 ins(,b) ins(,c) 3 9 ins(7,c) del(3,a) 4 ins(4,b) 8

24 Ολική διαχρονικότητα με «μακρείς κόμβους» Στην περίπτωση της ολικής διαχρονικότητας, οι εκδοχές της δομής δεν είναι ολικά διατεταγμένες, αλλά αναπαριστώνται από ένα δένδρο εκδοχών : Η πλοήγηση πρέπει να γίνει με βάση τη θέση των εκδοχών στο δένδρο και όχι με βάση τις τιμές τους. 0 διαχρονικός κόμβος εκδοχή ins(1,b) 1 ins(0,a) ins(1,d) πρόσβαση στην εκδοχή 9 7 del(6,a) 5 ins(,b) ins(,c) 3 9 ins(7,c) del(3,a) 4 ins(4,b) 8

25 Ολική διαχρονικότητα με «μακρείς κόμβους» Στην περίπτωση της ολικής διαχρονικότητας, οι εκδοχές της δομής δεν είναι ολικά διατεταγμένες, αλλά αναπαριστώνται από ένα δένδρο εκδοχών : Η πλοήγηση πρέπει να γίνει με βάση τη θέση των εκδοχών στο δένδρο και όχι με βάση τις τιμές τους. 0 Προδιάταξη εκδοχών: διαχρονικός κόμβος 1 0, 1, 6, 7, 9,, 5, 3, 4, 8 εκδοχή πρόσβαση στην εκδοχή 9 8 Αναζήτηση πεδίου f στην i-οστή εκδοχή: Αναζητούμε το πεδίο f με ετικέτα εκδοχής j, όπου j η δεξιότερη εκδοχή του πεδίου f που δεν είναι στα δεξιά της i στην προδιάταξη των εκδοχών.

26 Ολική διαχρονικότητα με «μακρείς κόμβους» Εισαγωγή νέας εκδοχής στο δένδρο εκδοχών Η νέα εκδοχή τοποθετείται στην προδιάταξη εκδοχών αμέσως μετά τον γονέα της στο δένδρο εκδοχών. 0 1 Προδιάταξη εκδοχών: 0, 1, 6, 10, 7, 9,, 5, 3, 4, 8 6 τροποποιεί την εκδοχή

27 Ολική διαχρονικότητα με «μακρείς κόμβους» Διαστήματα εκδοχών Έστω διαχρονικός κόμβος x που αποθηκεύει ένα πεδίο f. Οι ετικέτες εκδοχών των τιμών του πεδίου f διαμερίζουν το σύνολο όλων των εκδοχών τη δομής. Έστω η προδιάταξη όλων των εκδοχών της δομής. Μια τιμή v του πεδίου f με ετικέτα έχει διάστημα εκδοχών, όπου είναι η αμέσως επόμενη ετικέτα τιμής του πεδίου f που είναι αποθηκευμένη στον κόμβο x. (Αν δεν υπάρχει η, τότε.) διαχρονικός κόμβος Προδιάταξη εκδοχών: 0, 1, 6, 10, 7, 9,, 5, 3, 4, 8 εκδοχή

28 Ολική διαχρονικότητα με «μακρείς κόμβους» Διαστήματα εκδοχών Η δημιουργία μιας νέας εκδοχής αλλάζει τα διαστήματα εκδοχών : διαχρονικός κόμβος 0 Προδιάταξη εκδοχών: εκδοχή εκδοχή , 1, 6, 10, 7, 11, 9,, 5, 3, 4, 8 Το διάστημα της εκδοχής 6 διαιρείται. Για να μπορεί να γίνει σωστή πλοήγηση πρέπει να εισαχθεί στον κόμβο x η τιμή v του πεδίου f με ετικέτα 9, όπου v η τιμή που αντιστοιχεί στην ετικέτα

29 Ολική διαχρονικότητα με «μακρείς κόμβους» Διαστήματα εκδοχών Η δημιουργία μιας νέας εκδοχής αλλάζει τα διαστήματα εκδοχών : διαχρονικός κόμβος εκδοχή Προδιάταξη εκδοχών: 0, 1, 6, 10, 7, 11, 9,, 5, 3, 4,

30 Ολική διαχρονικότητα με «μακρείς κόμβους» Λειτουργίες τροποποίησης Θεωρούμε την i-οστή λειτουργία τροποποίησης της δομής, η οποία δημιουργεί την i-οστή εκδοχή. Έστω ότι η λειτουργία τροποποιεί το πεδίο f του κόμβου x. Εντοπίζουμε στον x τις τιμές v 1 και v του πεδίου f με ετικέτες i 1 και i αντίστοιχα, όπου η i 1 είναι η δεξιότερη, στην προδιάταξη, εκδοχή του πεδίου f στον x που βρίσκεται πριν την εκδοχή i και i είναι η αριστερότερη, στην προδιάταξη, εκδοχή του πεδίου f στον x που βρίσκεται μετά την εκδοχή i. Έστω j η αμέσως επόμενη εκδοχή από την i στην προδιάταξη των εκδοχών. προδιάταξη εκδοχών τιμές του πεδίου f στον κόμβο x τιμές ετικέτες

31 Ολική διαχρονικότητα με «μακρείς κόμβους» Λειτουργίες τροποποίησης Θεωρούμε την i-οστή λειτουργία τροποποίησης της δομής, η οποία δημιουργεί την i-οστή εκδοχή. Έστω ότι η λειτουργία τροποποιεί το πεδίο f του κόμβου x. Εντοπίζουμε στον x τις τιμές v 1 και v του πεδίου f με ετικέτες i 1 και i αντίστοιχα, όπου η i 1 είναι η δεξιότερη, στην προδιάταξη, εκδοχή του πεδίου f στον x που βρίσκεται πριν την εκδοχή i και i είναι η αριστερότερη, στην προδιάταξη, εκδοχή του πεδίου f στον x που βρίσκεται μετά την εκδοχή i. Έστω j η αμέσως επόμενη εκδοχή από την i στην προδιάταξη των εκδοχών. Εκτελούμε τα παρακάτω βήματα : Εισάγουμε την κατάλληλη νέα τιμή του πεδίου με ετικέτα. Αν ή αν η εκδοχή υπάρχει αλλά η εκδοχή δεν υπάρχει τότε προσθέτουμε στο πεδίο του κόμβου ένα νέο αντίγραφο της τιμής με ετικέτα.

32 Ολική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα 0 1 ins(0,e) 1 Ε

33 Ολική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα 0 1 ins(0,e) 1 ins(1,γ) Ε Γ

34 Ολική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα 0 1 ins(0,e) 1 ins(1,γ) Ε 3 ins(,μ) 3 Γ Μ

35 Ολική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα 0 1 ins(0,e) 1 ins(1,γ) Ε 3 ins(,μ) 3 Γ 4 Μ ins(3,i) 4 Ι

36 Ολική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα 0 1 ins(0,e) 1 ins(1,γ) Ε 3 5 ins(,μ) 3 Γ 4 Μ ins(3,i) 4 Ι del(4,m) 5

37 Ολική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα 0 1 ins(0,e) 1 6 ins(1,a) ins(1,γ) 6 Ε 3 5 ins(,μ) 3 A Γ 4 Μ ins(3,i) 4 Ι del(4,m) 5

38 Ολική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα 0 1 ins(0,e) ins(1,a) ins(6,h) ins(1,γ) ins(,μ) 3 A 6 Γ Ε 7 Η Μ ins(3,i) 4 Ι del(4,m) 5

39 Ολική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα 0 1 ins(0,e) ins(1,a) ins(6,h) ins(1,γ) 8 ins(,α) ins(,μ) 3 ins(3,i) 4 A 6 Α 8 Γ 3 Ε 7 Η 3 Ι 4 5 Μ del(4,m) 5

40 Ολική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα 0 1 ins(0,e) ins(1,a) ins(6,h) ins(1,γ) 8 ins(,α) ins(,μ) 3 9 ins(8,μ) ins(3,i) 4 A 6 Α 8 Γ 3 Ε Η Μ Μ 4 Ι del(4,m) 5

41 Ολική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα 0 1 ins(0,e) ins(1,a) ins(6,h) ins(7,k) ins(1,γ) 8 ins(,α) ins(,μ) 3 9 ins(8,μ) ins(3,i) 4 A 6 Α 8 Γ 3 Ε Η Μ Μ 4 10 Κ Ι del(4,m) 5

42 Ολική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα 0 1 ins(0,e) 1-10, ins(1,a) ins(6,h) ins(7,k) ins(1,γ) 8 ins(,α) ins(,μ) 3 9 ins(8,μ) ins(3,i) 4 A 6 Α 8 Γ 3 Ε Η Μ Μ 4 10 Κ Ι 11 del(10,e) del(4,m) 5 11

43 Ολική διαχρονικότητα με «μακρείς κόμβους» Παράδειγμα 0 1 ins(0,e) 1-10, ins(1,a) ins(6,h) ins(7,k) del(10,e) ins(1,γ) 8 ins(,α) ins(,μ) 3 9 ins(8,μ) ins(3,i) 4 del(4,m) 5 A 6 Α 8 11 Γ 3 Ε Η Μ Μ 4 10 Κ Ι 1 Ο ins(5,o) 1

44 Ολική διαχρονικότητα με «μακρείς κόμβους» Για τη διατήρηση μιας προδιάταξης του δένδρου εκδοχών χρησιμοποιούμε την ακόλουθη δομή δεδομένων. Δομή Δυναμικής Διατήρησης Γραμμικής Διάταξης Διατηρεί μια γραμμική διάταξη δυναμικά μεταβαλλόμενης συλλογής στοιχείων. Υποστηρίζει τις λειτουργίες: Εισαγωγή νέου στοιχείου y αμέσως μετά από το στοιχείο x. x y Έλεγχος της σειράς διάταξης δύο στοιχείων x και y. y x Προσεχώς: Δομές που επιτυγχάνουν χρόνο Ο(1) ανά πράξη

45 Ολική διαχρονικότητα με «μακρείς κόμβους» Επιδόσεις Χώρος ανά βήμα τροποποίησης (χειρότερη περίπτωση) Χρόνος ανά βήμα πρόσβασης/τροποποίησης (χειρότερη περίπτωση)

46 Μερική διαχρονικότητα με «διάσπαση κόμβων» Στόχος : Επιβάρυνση αναζήτησης. σε χώρο και χρόνο ανά βήμα τροποποίησης ή Παρατήρηση : Κατά την πλοήγηση σε μια διαχρονική δομή με «μακρείς κόμβους» επαναλαμβάνουμε σε κάθε διαχρονικό κόμβο την αναζήτηση της κατάλληλης ετικέτας. διαχρονικός κόμβος πρόσβαση στην εκδοχή 1 εκδοχή Όταν μεταβαίνουμε από τον κόμβο x στον κόμβο y, η αναζήτηση στον x μπορεί να διευκολύνει την αναζήτηση στον y

47 Μερική διαχρονικότητα με «διάσπαση κόμβων» Ιδέα : Κάθε διαχρονικός κόμβος αποθηκεύει ένα σταθερό αριθμό τιμών για κάθε πεδίο. Αν δεν υπάρχει διαθέσιμος χώρος σε ένα κόμβο x δημιουργούμε νέο αντίγραφο του κόμβου, στο οποίο αποθηκεύουμε μόνο τις νεότερες τιμές κάθε πεδίου. διαχρονικός κόμβος x διαχρονικός κόμβος x αντίγραφο του x τιμή πεδίου f α γ β ε α γ β ε δ ετικέτα εκδοχής τροποποίηση πεδίου f για την εκδοχή Για απλότητα, θα θεωρήσουμε ότι κάθε διαχρονικός κόμβος αποθηκεύει μόνο μία τιμή ενός πεδίου πληροφορίας, αλλά πολλαπλές τιμές ενός πεδίου συνδέσεως (δείκτη).

48 Μερική διαχρονικότητα με «διάσπαση κόμβων» Ιδέα : Κάθε διαχρονικός κόμβος αποθηκεύει ένα σταθερό αριθμό τιμών για κάθε πεδίο. Αν δεν υπάρχει διαθέσιμος χώρος σε ένα κόμβο x δημιουργούμε νέο αντίγραφο x του κόμβου x στο οποίο αποθηκεύουμε μόνο τις νεότερες τιμές κάθε πεδίου. Προσοχή : Οι προκάτοχοι του x (κόμβοι y που δείχνουν στον x) θα πρέπει επίσης να συνδεθούν με το νέο αντίγραφο του x. y y x δημιουργία αντίγραφου του x x x

49 Μερική διαχρονικότητα με «διάσπαση κόμβων» Ιδέα : Κάθε διαχρονικός κόμβος αποθηκεύει ένα σταθερό αριθμό τιμών για κάθε πεδίο. Αν δεν υπάρχει διαθέσιμος χώρος σε ένα κόμβο x δημιουργούμε νέο αντίγραφο x του κόμβου x στο οποίο αποθηκεύουμε μόνο τις νεότερες τιμές κάθε πεδίου. Προσοχή : Οι προκάτοχοι του x (κόμβοι y που δείχνουν στον x) θα πρέπει επίσης να συνδεθούν με το νέο αντίγραφο του x. Αν ο y δεν έχει διαθέσιμο χώρο για το νέο δείκτη στον x τότε πρέπει να γίνει αντιγραφή και του y. Η διαδικασία αυτή μπορεί να συνεχιστεί και σε άλλους κόμβους. y y y x δημιουργία αντιγράφων των x και y x x

50 Μερική διαχρονικότητα με «διάσπαση κόμβων» Ιδέα : Κάθε διαχρονικός κόμβος αποθηκεύει ένα σταθερό αριθμό τιμών για κάθε πεδίο. Αν δεν υπάρχει διαθέσιμος χώρος σε ένα κόμβο x δημιουργούμε νέο αντίγραφο x του κόμβου x στο οποίο αποθηκεύουμε μόνο τις νεότερες τιμές κάθε πεδίου. Προσοχή : Οι προκάτοχοι του x (κόμβοι y που δείχνουν στον x) θα πρέπει επίσης να συνδεθούν με το νέο αντίγραφο του x. Αν ο y δεν έχει διαθέσιμο χώρο για το νέο δείκτη στον x τότε πρέπει να γίνει αντιγραφή και του y. Η διαδικασία αυτή μπορεί να συνεχιστεί και σε άλλους κόμβους. Μπορούμε να επιτύχουμε αντισταθμιστικό φράγμα για τον αριθμό των κόμβων που αντιγράφονται ανά βήμα τροποποίησης (και επομένως για το χρόνο που απαιτείται) με την προϋπόθεση ότι κάθε εφήμερος κόμβος έχει ένα σταθερό αριθμό προκατόχων.

51 Μερική διαχρονικότητα με «διάσπαση κόμβων» Υποθέτουμε ότι κάθε εφήμερος κόμβος έχει : πεδία δεικτών προκατόχους, όπου Ένας διαχρονικός κόμβος έχει χώρο για δείκτες : δείκτες αντιστοιχούν στα πεδία δεικτών του εφήμερου κόμβου (πρωτότυποι δείκτες) δείκτες σε προκατόχους επιπλέον δείκτες, όπου δείκτης σε κάποιο αντίγραφο του διαχρονικού κόμβου Κάθε επιπλέον δείκτης φέρει μια «ετικέτα εκδοχής». Ο διαχρονικός κόμβος φέρει τη δική του ετικέτα εκδοχής, η οποία υποδεικνύει την εκδοχή στην οποία δημιουργήθηκε ο κόμβος. Οι πρωτότυποι δείκτες έχουν την ίδια ετικέτα εκδοχής με τον διαχρονικό κόμβο.

52 Μερική διαχρονικότητα με «διάσπαση κόμβων» Ένας εφήμερος κόμβος αντιστοιχεί σε μια «οικογένεια» διαχρονικών κόμβων. Οι διαχρονικοί κόμβοι σχηματίζουν μια συνδεδεμένη λίστα, χρησιμοποιώντας τους δείκτες αντιγράφου, σε αύξουσα σειρά εκδοχής. x [] x [5] x [6] x [9] δείκτης αντιγράφου Ο τελευταίος κόμβος της λίστας είναι ενεργός (μπορεί να τροποποιηθεί). Οι υπόλοιποι κόμβοι είναι ανενεργοί. Οι ενεργοί κόμβοι και οι νεότερες τιμές των πεδίων τους αντιπροσωπεύουν την πιο πρόσφατη εκδοχή της εφήμερης δομής. Ένας δείκτης στη διαχρονική δομή είναι ενεργός αν αντιστοιχεί σε δείκτη της νεότερης εκδοχής της εφήμερης δομής.

53 Μερική διαχρονικότητα με «διάσπαση κόμβων» Κάθε ενεργός δείκτης έχει έναν «αντίστροφο» δείκτη : Αν ο ενεργός διαχρονικός κόμβος x έχει ένα ενεργό δείκτη προς τον ενεργό διαχρονικό κόμβο y, τότε ο y έχει έναν αντίστροφο δείκτη προς τον x. ενεργός δείκτης x αντίστροφος δείκτης y Ο αντίστροφος δείκτης αποθηκεύεται σε ένα από τα προκατόχους. πεδία δεικτών σε Πρόσβαση στη διαχρονική δομή Αποθηκεύουμε τους δείκτες προσβάσεως της δομής σε ένα πίνακα όπως και στη δομή με «μακρείς κόμβους»: Η πλοήγηση στη διαχρονική δομή με «διάσπαση κόμβων» γίνεται με τον ίδιο ακριβώς τρόπο, μόνο που τώρα κάθε βήμα πρόσβασης εκτελείται σε χρόνο.

54 Μερική διαχρονικότητα με «διάσπαση κόμβων» Λειτουργίες τροποποίησης Θεωρούμε την i-οστή λειτουργία τροποποίησης της δομής, η οποία δημιουργεί την i-οστή εκδοχή. Κατά τη διάρκεια της τροποποίησης, η διαχρονική δομή προσομοιώνει τα βήματα τροποποίησης της εφήμερης δομής. Διατηρούμε ένα σύνολο S των διαχρονικών κόμβων έχουμε διασπάσει (δηλαδή έχουμε δημιουργήσει αντίγραφο τους). Αρχικά το S είναι κενό. Αν η τροποποίηση της εφήμερης δομής δημιουργεί ένα νέο κόμβο, τότε η διαχρονική δομή δημιουργεί ένα νέο διαχρονικό κόμβο με ετικέτα εκδοχής i.

55 Μερική διαχρονικότητα με «διάσπαση κόμβων» Λειτουργίες τροποποίησης Έστω ότι κατά την i-οστή λειτουργία τροποποίησης, η εφήμερη δομή τροποποιεί την τιμή v ενός πεδίου πληροφορίας f του εφήμερου κόμβου χ. Στη διαχρονική δομή εξετάζουμε τον αντίστοιχο διαχρονικό κόμβο x : Aν η ετικέτα του x είναι i τότε απλά αλλάζουμε την τιμή του πεδίου f σε v. Αν η ετικέτα του x είναι μικρότερη από i και ο x έχει αντίγραφο x, τότε η ετικέτα του x πρέπει να είναι i και απλά αλλάζουμε την τιμή του πεδίου f στον x σε v. Αν η ετικέτα του x είναι μικρότερη από i και ο x δεν έχει αντίγραφο, τότε δημιουργούμε διαχρονικό κόμβο x με ετικέτα i, κάνουμε τον δείκτη αντιγράφου του x να δείχνει στον x και αντιγράφουμε στον x τις νεότερες τιμές των πεδίων πληροφορίας του x, εκτός του πεδίου f στο οποίο δίνουμε την τιμή v. Επιπλέον πρέπει να προσθέσουμε στον x τις πιο πρόσφατες τιμές των δεικτών του εφήμερου κόμβου χ.

56 Μερική διαχρονικότητα με «διάσπαση κόμβων» Λειτουργίες τροποποίησης Η ενημέρωση των πεδίων δεικτών του x απαιτεί να τροποποιηθούν ανάλογα και οι αντίστροφοι δείκτες. Έστω ότι ο x περιέχει ένα δείκτη προς τον κόμβο y ως την πιο πρόσφατη τιμή ενός πεδίου f. Αποθηκεύουμε σε ένα πεδίο των πρωτότυπων δεικτών του x ένα δείκτη προς τον y, ή προς το αντίγραφο y του y, αν ο y έχει προηγουμένως διασπαστεί. Διαγράφουμε από τον y το δείκτη προς τον x που είναι αποθηκευμένος σε κάποιο από τα πεδία προκατόχου. Αποθηκεύουμε ένα δείκτη προς τον x σε πεδίο προκατόχου του y, αν δεν υπάρχει ο y, ή του y αν αυτός υπάρχει. x x Όταν ολοκληρωθεί η συμπλήρωση όλων των πρωτότυπων δεικτών του x, προσθέτουμε τον x στο σύνολο S. y y

57 Μερική διαχρονικότητα με «διάσπαση κόμβων» Λειτουργίες τροποποίησης Η τροποποίηση ενός πεδίου δείκτη είναι ανάλογη. Έστω ότι κατά την i-οστή τροποποίηση, η εφήμερη δομή τροποποιεί την τιμή v ενός πεδίου δείκτη f του εφήμερου κόμβου χ. Στη διαχρονική δομή εξετάζουμε τον αντίστοιχο διαχρονικό κόμβο x : Aν η ετικέτα του x είναι i τότε απλά αλλάζουμε την τιμή του πεδίου f σε v. Αν η ετικέτα του x είναι μικρότερη από i και ο x έχει αντίγραφο x, τότε η ετικέτα του x πρέπει να είναι i και απλά αλλάζουμε την τιμή του πεδίου f στον x σε v. Αν η ετικέτα του x είναι μικρότερη από i και ο x δεν έχει αντίγραφο, τότε εξετάζουμε αν ο x έχει χώρο (στα πεδία επιπλέον δεικτών) για ακόμα ένα δείκτη. Αν ναι τότε αποθηκεύουμε εκεί τον δείκτη v με όνομα πεδίου f και ετικέτα i. Διαφορετικά δημιουργούμε αντίγραφο x του x, όπως περιγράψαμε πριν, και προσθέτουμε τον x στο σύνολο S.

58 Μερική διαχρονικότητα με «διάσπαση κόμβων» Λειτουργίες τροποποίησης Κατά την προσομοίωση των βημάτων της εφήμερης δομής, όταν αποθηκεύουμε ένα δείκτη σε ένα διαχρονικό κόμβο x, τότε ο δείκτης συνδέει τον x με ενεργό κόμβο : Αν ο δείκτης αναφέρεται στον κόμβο y ο οποίος έχει διασπαστεί και έχει αντίγραφο y τότε στον x αποθηκεύουμε δείκτη προς τον y. Μόλις ολοκληρωθούν τα βήματα προσομοίωσης επεξεργαζόμαστε τους κόμβους του S έτσι ώστε οι ενεργοί δείκτες να δείχνουν σε ενεργούς κόμβους. Για το σκοπό αυτό εκτελούμε το παρακάτω βήμα μέχρι το S να γίνει κενό: Βήμα επικύρωσης δεικτών : Λαμβάνουμε τον επόμενο κόμβο y από το S και θέτουμε. Για κάθε κόμβο x προς τον οποίο υπάρχει δείκτης προκατόχου στον y βρίσκουμε στον x τον ενεργό δείκτη προς τον y. Αν ο δείκτης αυτός έχει ετικέτα i τότε τον αντικαθιστούμε με δείκτη προς τον y. Διαφορετικά δημιουργούμε νέο δείκτη προς τον y με ετικέτα i. Ο δείκτης αυτός αποθηκεύεται στον x αν υπάρχει χώρος. Διαφορετικά δημιουργούμε αντίγραφο του x και εισάγουμε τον x στο S. Κάθε φορά που αποθηκεύουμε ένα δείκτη, τροποποιούμε τον αντίστροφο δείκτη ανάλογα.

59 Μερική διαχρονικότητα με «διάσπαση κόμβων» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Υποθέτουμε ότι η πρόσβαση γίνεται από τη ρίζα του δένδρου. Τότε μπορούμε να απλοποιήσουμε τη δομή ως εξής : Δεν χρειαζόμαστε τους αντίστροφους δείκτες : για κάθε κόμβο της εφήμερης δομής υπάρχει μοναδικό μονοπάτι πρόσβασης από τη ρίζα. Για τον ίδιο λόγο δεν χρειαζόμαστε τους δείκτες αντιγράφου και τις ετικέτες εκδοχής των κόμβων. Αρκεί κάθε διαχρονικός κόμβος να έχει ένα πεδίο επιπλέον δείκτη.

60 Μερική διαχρονικότητα με «διάσπαση κόμβων» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) 1 Ε

61 Μερική διαχρονικότητα με «διάσπαση κόμβων» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) 1- Ε Γ

62 Μερική διαχρονικότητα με «διάσπαση κόμβων» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) 1- Ε 3 Ε Γ Μ

63 Μερική διαχρονικότητα με «διάσπαση κόμβων» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) 1- Ε 3-4 Ε Α 4 Γ Μ

64 Μερική διαχρονικότητα με «διάσπαση κόμβων» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) 1- Ε 3-5 Ε Α 4 Γ Μ 5 Π

65 Μερική διαχρονικότητα με «διάσπαση κόμβων» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) Γ Ε Ε Μ 5 6 Μ 4 Α Ι Π

66 Μερική διαχρονικότητα με «διάσπαση κόμβων» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) Γ Ε Ε Μ 5 6 Μ 4 Α 7 Ι Π Η

67 Μερική διαχρονικότητα με «διάσπαση κόμβων» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) Γ Ε Ε Μ 5 6 Μ 4 8 Α 7 Ι Ι Π Η Λ

68 Μερική διαχρονικότητα με «διάσπαση κόμβων» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) Γ Ε Ε Μ 5 6 Μ 4 8 Α 7 Ι Ι Π Η 9 Λ Κ

69 Μερική διαχρονικότητα με «διάσπαση κόμβων» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) Γ Ε Ε Μ 5 6 Μ 4 8 Α 7 Ι Ι 10 Π Η 9 Λ Ο Κ

70 Μερική διαχρονικότητα με «διάσπαση κόμβων» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) Γ Ε Ε Μ Ε 5 6 Μ 4 8 Α 7 Ι Ι 10 Π Π Η 9 Λ Ο Ο Κ

71 Μερική διαχρονικότητα με «διάσπαση κόμβων» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) Γ Ε Γ 1 Ε Μ Ε 5 6 Μ 4 8 Α 7 Ι Ι 10 Π Π Η 9 Λ Ο Ο Κ

72 Μερική διαχρονικότητα με «διάσπαση κόμβων» Παράδειγμα : Μερικώς διαχρονικό δυαδικό δένδρο αναζήτησης Ακολουθία τροποποιήσεων : ins(0,ε), ins(1,γ), ins(,μ), ins(3,α), ins(4,π), ins(5,ι), ins(6,η), ins(7,λ), ins(8,κ), ins(9,ο), del(10,m), del(11,α), del(1,e) Γ Ε Γ 1 Ε Μ Ε 5 6 Μ 4 8 Α 7 Ι Ι 10 Π Π Η Η 9 Λ Ο Ο Κ

73 Μερική διαχρονικότητα με «διάσπαση κόμβων» Αντισταθμιστική Ανάλυση Θα δείξουμε ότι το αντισταθμιστικό κόστος, σε χώρο και χρόνο, ανά βήμα τροποποίησης είναι. Χρησιμοποιούμε την ενεργειακή μέθοδο. Επιλέγουμε σταθερό. Δυναμικό δομής : πλήθος ενεργών κόμβων πλήθος επιπλέον δεικτών που δε χρησιμοποιούνται στους ενεργούς κόμβους Αρχικά, για κενή δομή : Μετά από κάθε τροποποίηση :

74 Μερική διαχρονικότητα με «διάσπαση κόμβων» Αντισταθμιστική Ανάλυση Θα δείξουμε ότι το αντισταθμιστικό κόστος, σε χώρο και χρόνο, ανά βήμα τροποποίησης είναι. Χρησιμοποιούμε την ενεργειακή μέθοδο. Επιλέγουμε σταθερό. Δυναμικό δομής : πλήθος ενεργών κόμβων πλήθος επιπλέον δεικτών που δε χρησιμοποιούνται στους ενεργούς κόμβους Δυναμικό ενεργού κόμβου με αχρησιμοποίητους επιπλέον δείκτες Δυναμικό ανενεργού κόμβου

75 Μερική διαχρονικότητα με «διάσπαση κόμβων» Αντισταθμιστική Ανάλυση Έστω ότι μια λειτουργία εκτελεί βήματα τροποποίησης. Κάθε βήμα δημιουργεί το πολύ ένα νέο διαχρονικό κόμβο, οπότε και τοποθετεί ένα κόμβο στο. Επομένως αρκεί να αναλύσουμε την επίδραση της επεξεργασίας του επικύρωση των δεικτών προκατόχων. για την Έστω ο αριθμός των κόμβων του στην αρχή της επεξεργασίας. Έστω ο αριθμός των κόμβων που προστέθηκαν στο κατά τη διάρκεια της επεξεργασίας. Κάθε φορά που αντιγράφεται ένας κόμβος έχει δυναμικό το οποίο γίνεται αφού ο κόμβος παύει να είναι ενεργός. Δημιουργείται ένας νέος ενεργός κόμβος με δυναμικό. Στη συνέχεια το δυναμικό του νέου κόμβου αυξάνει κατά για κάθε δείκτη που αποθηκεύεται σε πεδίο επιπλέον δεικτών.

76 Μερική διαχρονικότητα με «διάσπαση κόμβων» Αντισταθμιστική Ανάλυση Κάθε κόμβος του έχει το πολύ δείκτες σε προκατόχους, άρα ο αριθμός των δεικτών που πρέπει να αποθηκευτούν είναι. Τουλάχιστον από αυτούς θα αποθηκευτούν σε πεδία δεικτών προκατόχων και όχι σε πεδία επιπλέον δεικτών. H συνολική αύξηση του δυναμικού από τους επιπλέον δείκτες είναι H συνολική μείωση του δυναμικού από τους ενεργούς κόμβους που γίνονται ανενεργοί είναι Άρα η συνολική μεταβολή του δυναμικού είναι

77 Μερική διαχρονικότητα με «διάσπαση κόμβων» Αντισταθμιστική Ανάλυση Το συνολικό αντισταθμιστικό κόστος χώρου για όλα τα βήματα τροποποίησης είναι Αφού η λειτουργία πραγματοποίησε ανά βήμα είναι. βήματα, το αντισταθμιστικό κόστος χώρου Συνεπώς, κάθε βήμα τροποποίησης δημιουργεί νέους κόμβους, κατά την αντισταθμιστική έννοια. Άρα το αντισταθμιστικό κόστος χρόνου ανά βήμα είναι επίσης.

78 Ολική διαχρονικότητα με «διάσπαση κόμβων» Ιδέα : Αν δεν υπάρχει διαθέσιμος χώρος σε ένα κόμβο x δημιουργούμε νέο αντίγραφο x του κόμβου x, στο οποίο μεταφέρουμε τους μισούς περίπου επιπλέον δείκτες του x. Έτσι μένει χώρος για μελλοντικές τροποποιήσεις και στους δύο κόμβους. Τεχνικά ζητήματα : Η διαχείριση των αντίστροφων δεικτών απαιτεί μεγαλύτερη προσοχή. Οι δείκτες πρόσβασης μπορεί να πρέπει να αλλάξουν κατά τη διάρκεια κάποιων τροποποιήσεων. Άρα χρειάζεται να διατηρούμε αντίστροφους δείκτες και για τους δείκτες πρόσβασης. Για κάθε τέτοιο αντίστροφο δείκτη πρόσβασης, αρκεί να αποθηκεύουμε στον κόμβο το όνομα του αντίστοιχου δείκτη πρόσβασης.

79 Εφήμερη δομή με αντίστροφους δείκτες Υποθέτουμε ότι κάθε εφήμερος κόμβος έχει : πεδία δεικτών προκατόχους, όπου Στον αριθμό των προκατόχων συμπεριλαμβάνουμε και τους δείκτες πρόσβασης. Επεκτείνουμε την εφήμερη δομή έτσι ώστε ο κάθε εφήμερος κόμβος να έχει αντίστροφους δείκτες. (Άρα έχει συνολικά πεδία δεικτών.) Έστω ότι μια λειτουργία τροποποίησης αλλάζει το πεδίο δείκτη f ενός κόμβου χ στο να δείχνει τον κόμβο ψ. Έστω ότι πριν την τροποποίηση το πεδίο δείκτη f του χ έδειχνε στον κόμβο φ (που μπορεί να είναι ο κενός κόμβος). Εκτελούμε τα παρακάτω βήματα : Βρίσκουμε τον αντίστροφο δείκτη του φ που δείχνει στον χ και τον κάνουμε κενό. Βρίσκουμε ένα πεδίο αντίστροφου δείκτη στον ψ και τον κάνουμε να δείχνει στον χ.

80 Εφήμερη δομή με αντίστροφους δείκτες Έστω τώρα ότι μια λειτουργία τροποποίησης θέτει το δείκτη πρόσβασης π να δείχνει στον κόμβο χ. Έστω ότι πριν την τροποποίηση ο δείκτης π έδειχνε στον κόμβο ψ (που μπορεί να είναι ο κενός κόμβος). Εκτελούμε τα παρακάτω βήματα : Βρίσκουμε τον αντίστροφο δείκτη του ψ με όνομα π και τον κάνουμε κενό. Βρίσκουμε ένα πεδίο αντίστροφου δείκτη στον χ και του δίνουμε το όνομα π. Στο τέλος της λειτουργίας τροποποίησης εκτελούμε την ακόλουθη διαδικασία επανεγγραφής των δεικτών πρόσβασης : Για το δείκτη πρόσβασης π βρίσκουμε τον κόμβο χ που δείχνει ο π και αποθηκεύουμε ξανά το όνομα π σε πεδίο αντίστροφου δείκτη του χ. Η διαδικασία αυτή είναι χρήσιμη στην μετατροπή της εφήμερης δομής με αντίστροφους δείκτες σε διαχρονική.

81 Εφήμερη δομή με αντίστροφους δείκτες Ιδιότητες συμμετρίας Αν ο κόμβος χ έχει δείκτη προς τον κόμβο ψ τότε και ο ψ έχει δείκτη προς τον χ. Ο δείκτης πρόσβασης π δείχνει στον κόμβο χ αν και μόνο αν ο χ έχει αποθηκευμένο το όνομα π σε κάποιο πεδίο αντίστροφου δείκτη.

82 Εφήμερη δομή με αντίστροφους δείκτες Μετατροπή σε διαχρονική δομή με «μακρείς κόμβους» Έστω η προδιάταξη όλων των εκδοχών της δομής. Μια τιμή v του πεδίου f με ετικέτα έχει διάστημα εκδοχών, όπου είναι η αμέσως επόμενη ετικέτα τιμής του πεδίου f που είναι αποθηκευμένη στον κόμβο x. (Αν δεν υπάρχει η, τότε.) διαχρονικός κόμβος εκδοχή Προδιάταξη εκδοχών: 0, 1, 6, 10, 7, 9,, 5, 3, 4,

83 Εφήμερη δομή με αντίστροφους δείκτες Μετατροπή σε διαχρονική δομή με «μακρείς κόμβους» Έστω η προδιάταξη όλων των εκδοχών της δομής. Μια τιμή v του πεδίου f με ετικέτα έχει διάστημα εκδοχών, όπου είναι η αμέσως επόμενη ετικέτα τιμής του πεδίου f που είναι αποθηκευμένη στον κόμβο x. (Αν δεν υπάρχει η, τότε.) Από τις ιδιότητες συμμετρίας της εφήμερης δομής έχουμε : Αν ο κόμβος x έχει δείκτη προς τον κόμβο y τέτοιον ώστε το διάστημα εκδοχών του δείκτη περιλαμβάνει την εκδοχή i, τότε ο y έχει δείκτη προς τον x τέτοιον ώστε το διάστημα εκδοχών του περιλαμβάνει την εκδοχή i. Ο δείκτης πρόσβασης π της εκδοχής i δείχνει σε κόμβο x αν και μόνο αν ο x έχει αποθηκευμένο το όνομα π με ετικέτα i. (Συνεπάγεται από τη διαδικασία επανεγγραφής των δεικτών πρόσβασης.)

84 Εφήμερη δομή με αντίστροφους δείκτες Μετατροπή σε διαχρονική δομή με «μακρείς κόμβους» Παράδειγμα : Ολικά διαχρονικό δυαδικό δένδρο αναζήτησης με αντίστροφους δείκτες. Όταν διαγράφεται ένας κόμβος θέτουμε όλους τους δείκτες του να δείχνουν τον κενό κόμβο. 0 1 ins(0,e) 6 ins(1,a) ins(1,γ) 7 ins(6,h) 8 ins(,α) ins(,μ) 3 10 ins(7,k) 9 ins(8,μ) ins(3,i) 4 11 del(10,e) del(4,m) 5 ins(5,o) 1 A Ε Γ Η Μ Μ Α Κ Ι 1 11 Ο

85 Εφήμερη δομή με αντίστροφους δείκτες Μετατροπή σε διαχρονική δομή με «μακρείς κόμβους» Παρατήρηση : Έστω ένας μακρύς κόμβος που περιέχει την τιμή με ετικέτα και διάστημα εκδοχών ενός πεδίου. Έστω ότι αποθηκεύουμε στον ένα (πλεονάζον) αντίγραφο της τιμής με ετικέτα. Η ύπαρξη αυτού του αντίγραφου δεν επηρεάζει ούτε την πλοήγηση στη διαχρονική δομή ούτε τις ιδιότητες συμμετρίας.

86 Ολική διαχρονικότητα με «διάσπαση κόμβων» Ιδέα : Διασπούμε τους μακρείς κόμβους σε κόμβους σταθερού μεγέθους. Για τη διάσπαση μπορεί να χρειαστεί να εισαχθούν πλεονάζουσες τιμές σε κάποια πεδία. Υποθέτουμε ότι κάθε εφήμερος κόμβος έχει : πεδία δεικτών προκατόχους, όπου Στον αριθμό των προκατόχων συμπεριλαμβάνουμε και τους δείκτες πρόσβασης. Επεκτείνουμε την εφήμερη δομή έτσι ώστε ο κάθε εφήμερος κόμβος να έχει αντίστροφους δείκτες. Άρα ένας εφήμερος κόμβος της επεκταμένης δομής έχει πεδία δεικτών.

87 Ολική διαχρονικότητα με «διάσπαση κόμβων» Ένας διαχρονικός κόμβος έχει χώρο για δείκτες : δείκτες αντιστοιχούν στα πεδία δεικτών του εφήμερου κόμβου της επεκταμένης δομής (πρωτότυποι δείκτες) επιπλέον δείκτες, όπου δείκτης σε κάποιο αντίγραφο του διαχρονικού κόμβου Κάθε επιπλέον δείκτης φέρει το όνομα του πεδίου που του αντιστοιχεί, καθώς και μια «ετικέτα εκδοχής». Ο διαχρονικός κόμβος φέρει τη δική του ετικέτα εκδοχής, η οποία υποδεικνύει την εκδοχή στην οποία δημιουργήθηκε ο κόμβος. Οι πρωτότυποι δείκτες έχουν την ίδια ετικέτα εκδοχής με τον διαχρονικό κόμβο.

88 Ολική διαχρονικότητα με «διάσπαση κόμβων» Ένας μακρύς κόμβος (δηλαδή όλες οι εκδοχές ενός εφήμερου κόμβου της επεκταμένης δομής) αντιστοιχεί σε μια «οικογένεια» διαχρονικών κόμβων. Οι διαχρονικοί κόμβοι σχηματίζουν μια συνδεδεμένη λίστα, χρησιμοποιώντας τους δείκτες αντιγράφου, σε αύξουσα σειρά εκδοχής. x [] x [5] x [6] x [9] δείκτης αντιγράφου επόμενος κόμβος μετά τον στη συνδεδεμένη λίστα. (Ο δείκτης αντιγράφου του δείχνει τον.) Διάστημα έγκυρων εκδοχών του : Περιλαμβάνει τις εκδοχές από την ετικέτα του έως και την εκδοχή αμέσως πριν την ετικέτα του στην προδιατεταγμένη λίστα εκδοχών ή μέχρι και την τελευταία εκδοχή της λίστας εκδοχών αν ο δεν υπάρχει.

89 Ολική διαχρονικότητα με «διάσπαση κόμβων» επόμενος κόμβος μετά τον στη συνδεδεμένη λίστα. (Ο δείκτης αντιγράφου του δείχνει τον.) Διάστημα έγκυρων εκδοχών του κόμβου : Περιλαμβάνει τις εκδοχές από την ετικέτα του έως και την εκδοχή αμέσως πριν την ετικέτα του στην προδιατεταγμένη λίστα εκδοχών ή μέχρι και την τελευταία εκδοχή της λίστας εκδοχών αν ο δεν υπάρχει. Διάστημα έγκυρων εκδοχών μιας τιμής του πεδίου του κόμβου : Περιλαμβάνει τις εκδοχές από την ετικέτα του έως και την εκδοχή αμέσως πριν την επόμενη ετικέτα του ίδιου πεδίου στην οικογένεια κόμβων του ή μέχρι και την τελευταία εκδοχή της λίστας εκδοχών αν δεν υπάρχει τέτοια επόμενη ετικέτα. Τα διαστήματα έγκυρων εκδοχών των κόμβων μιας οικογένειας διαμερίζουν το διάστημα έγκυρων εκδοχών του αντίστοιχου μακρύ κόμβου. Ομοίως τα διαστήματα έγκυρων εκδοχών των τιμών ενός πεδίου σε ένα κόμβο διαμερίζουν το διάστημα έγκυρων εκδοχών του κόμβου.

90 Ολική διαχρονικότητα με «διάσπαση κόμβων» Ιδιότητες συμμετρίας της διαχρονικής δομής : Αν ο κόμβος x έχει δείκτη προς τον κόμβο y τέτοιον ώστε το διάστημα έγκυρων εκδοχών του δείκτη περιλαμβάνει την εκδοχή i, τότε κάποιος κόμβος της οικογένειας του y έχει δείκτη προς κάποιο κόμβο της οικογένειας του x τέτοιον ώστε το διάστημα έγκυρων εκδοχών του δείκτη περιλαμβάνει την εκδοχή i. Ο δείκτης πρόσβασης π της εκδοχής i δείχνει σε κόμβο x αν και μόνο αν κάποιος κόμβος στην οικογένεια του x έχει αποθηκευμένο το όνομα π με ετικέτα i.

91 Ολική διαχρονικότητα με «διάσπαση κόμβων» Έστω ένας δείκτης με ετικέτα i που δείχνει στο διαχρονικό κόμβο x. Αν το διάστημα έγκυρων εκδοχών του x περιλαμβάνει την εκδοχή i, τότε o δείκτης είναι κατάλληλος. Αν το διάστημα έγκυρων εκδοχών του δείκτη δεν περιλαμβάνεται στο διάστημα έγκυρων εκδοχών του x, τότε o δείκτης είναι επικαλυπτόμενος. Ομοίως, ένας δείκτης πρόσβασης με ετικέτα i που δείχνει στο διαχρονικό κόμβο x είναι κατάλληλος αν το διάστημα έγκυρων εκδοχών του x περιλαμβάνει την εκδοχή i, διαφορετικά ο δείκτης είναι επικαλυπτόμενος. Η διαχρονική δομή μπορεί να περιλαμβάνει μη κατάλληλους ή επικαλυπτόμενους δείκτες μόνο κατά τη διάρκεια κάποιας λειτουργίας τροποποίησης. Πριν και μετά την τροποποίηση όλοι οι δείκτες είναι κατάλληλοι και μη επικαλυπτόμενοι Αναλλοίωτη συνθήκη δεικτών.

92 Ολική διαχρονικότητα με «διάσπαση κόμβων» Ιδιότητες συμμετρίας της διαχρονικής δομής : Αν ο κόμβος x έχει δείκτη προς τον κόμβο y τέτοιον ώστε το διάστημα έγκυρων εκδοχών του δείκτη περιλαμβάνει την εκδοχή i, τότε κάποιος κόμβος της οικογένειας του y έχει δείκτη προς κάποιο κόμβο της οικογένειας του x τέτοιον ώστε το διάστημα έγκυρων εκδοχών του δείκτη περιλαμβάνει την εκδοχή i. Ο δείκτης πρόσβασης π της εκδοχής i δείχνει σε κόμβο x αν και μόνο αν κάποιος κόμβος στην οικογένεια του x έχει αποθηκευμένο το όνομα π με ετικέτα i. Αν οι όλοι δείκτες είναι κατάλληλοι και μη επικαλυπτόμενοι τότε οι ιδιότητες συμμετρίας είναι όπως στην περίπτωση της δομής με «μακρείς κόμβους» : Αν ο κόμβος x έχει δείκτη προς τον κόμβο y τέτοιον ώστε το διάστημα έγκυρων εκδοχών του δείκτη περιλαμβάνει την εκδοχή i, τότε ο y έχει δείκτη προς τον x τέτοιον ώστε το διάστημα έγκυρων εκδοχών του περιλαμβάνει την εκδοχή i. Ο δείκτης πρόσβασης π της εκδοχής i δείχνει σε κόμβο x αν και μόνο αν ο x έχει αποθηκευμένο το όνομα π με ετικέτα i. Επιπλέον η πλοήγηση μπορεί να γίνει ακριβώς όπως και στη δομή με «μακρείς κόμβους», αλλά με O(1) επιβάρυνση σε χρόνο ανά βήμα.

93 Ολική διαχρονικότητα με «διάσπαση κόμβων» Λειτουργίες τροποποίησης Μια λειτουργία τροποποίησης της δομής εκτελείται σε δύο φάσεις : Πρώτη φάση : Προσομοιώνει τα βήματα τροποποίησης της αντίστοιχης επεκταμένης εφήμερης δομής. Οι νέες τιμές αποθηκεύονται σε νέα αντίγραφα διαχρονικών κόμβων, οπότε μπορεί να προκληθεί παραβίαση της αναλλοίωτης συνθήκης δεικτών. Δεύτερη φάση : Αποκαθιστά την αναλλοίωτη συνθήκη δεικτών. Η αποκατάσταση γίνεται με προσεκτική αντιγραφή δεικτών. Η αντιγραφή μπορεί να προκαλέσει νέες διασπάσεις κόμβων, επομένως η διαδικασία αποκατάστασης εναλλάσσει βήματα διάσπασης κόμβων και βήματα αντιγραφής δεικτών μέχρι να γίνουν όλοι οι δείκτες κατάλληλοι και μη επικαλυπτόμενοι.

94 Ολική διαχρονικότητα με «διάσπαση κόμβων» Λειτουργίες τροποποίησης Πρώτη φάση Θεωρούμε τα βήματα τροποποίησης που δημιουργούν την εκδοχή. Έστω εκδοχών. η αμέσως επόμενη εκδοχή (αν υπάρχει) στην προδιατεταγμένη λίστα Αν η τροποποίηση της εφήμερης δομής δημιουργεί ένα νέο κόμβο, τότε η διαχρονική δομή δημιουργεί ένα νέο διαχρονικό κόμβο με ετικέτα εκδοχής. Αρχικοποιούμε με κατάλληλες τιμές όλα τα πεδία πληροφορίας και τους πρωτότυπους δείκτες του. Αν κάποιο πεδίο δείκτη λάβει μη κενή τιμή τότε προσθέτουμε στον ένα νέο κενό δείκτη με όνομα πεδίου και ετικέτα. (Αυτό γίνεται για να διατηρήσουμε τις συνθήκες συμμετρίας.)

95 Ολική διαχρονικότητα με «διάσπαση κόμβων» Λειτουργίες τροποποίησης Πρώτη φάση Έστω τώρα ότι ένα βήμα τροποποίησης της εφήμερης δομής αλλάζει το πεδίο ενός κόμβου που δημιουργήθηκε σε εκδοχή διαφορετική από την. Για την προσομοίωση αυτού του βήματος από τη διαχρονική δομή, βρίσκουμε τον διαχρονικό κόμβο που αντιστοιχεί στον. Αν η ετικέτα του είναι τότε απλά αλλάζουμε την τιμή του πρωτότυπου πεδίου όπως στην εφήμερη δομή.

96 Ολική διαχρονικότητα με «διάσπαση κόμβων» Λειτουργίες τροποποίησης Πρώτη φάση Έστω τώρα ότι η ετικέτα του είναι. Αν υπάρχει η εκδοχή και είτε δεν υπάρχει ο επόμενος κόμβος της οικογένειας του είτε υπάρχει αλλά έχει ετικέτα που βρίσκεται μετά το στην προδιατεταγμένη λίστα εκδοχών, τότε εκτελούμε τα παρακάτω βήματα : 1. Δημιουργούμε δύο νέους κόμβους και με ετικέτες και αντίστοιχα.. Κάνουμε τον δείκτη αντιγράφου του να δείχνει τον, τον δείκτη αντιγράφου του να δείχνει τον, και τον δείκτη αντιγράφου του να δείχνει τον. 3. Τα πεδία πληροφορίας των και έχουν τις ίδιες τιμές με του. 4. Κάθε πρωτότυπος δείκτης πεδίου του (αντίστοιχα του ) λαμβάνει την τιμή του από τον που έχει την δεξιότερη ετικέτα που δεν είναι στα δεξιά του (αντίστοιχα του ).

97 Ολική διαχρονικότητα με «διάσπαση κόμβων» Λειτουργίες τροποποίησης Πρώτη φάση Έστω τώρα ότι η ετικέτα του είναι. Αν υπάρχει η εκδοχή και είτε δεν υπάρχει ο επόμενος κόμβος της οικογένειας του είτε υπάρχει αλλά έχει ετικέτα που βρίσκεται μετά το στην προδιατεταγμένη λίστα εκδοχών, τότε εκτελούμε τα παρακάτω βήματα : 5. Διαγράφουμε από τον όλους τους επιπλέον δείκτες με ετικέτα και μεταφέρουμε στα πεδία επιπλέον δεικτών του τους επιπλέον δείκτες του με ετικέτες στα δεξιά του. 6. Οι αλλαγές που γίνονται στα πεδία του κατά τη διάρκεια της τροποποίησης καταγράφονται στον, ο οποίος αντιστοιχεί στην εκδοχή του.

98 Ολική διαχρονικότητα με «διάσπαση κόμβων» Λειτουργίες τροποποίησης Πρώτη φάση Έστω τώρα ότι η ετικέτα του είναι. Αν δεν υπάρχει η εκδοχή ή ο έχει ετικέτα, τότε εκτελούμε τα παρακάτω βήματα : 1. Δημιουργούμε ένα νέο κόμβο με ετικέτα.. Κάνουμε τον δείκτη αντιγράφου του να δείχνει τον και τον δείκτη αντιγράφου του να δείχνει τον. 3. Τα πεδία πληροφορίας και πρωτότυπων δεικτών του αρχικοποιούνται όπως και πριν. 4. Οι αλλαγές που γίνονται στα πεδία του κατά τη διάρκεια της τροποποίησης καταγράφονται στον, ο οποίος αντιστοιχεί στην εκδοχή του.

99 Ολική διαχρονικότητα με «διάσπαση κόμβων» Λειτουργίες τροποποίησης Πρώτη φάση Κατά τη διάρκεια εκτέλεσης της πρώτης φάσης δημιουργούμε μια λίστα που περιλαμβάνει τους νέους κόμβους που δημιουργήθηκαν, καθώς και τους κόμβους για τους οποίους άλλαξε ο διάδοχος τους στη λίστα της οικογένειας. Πριν το τέλος της πρώτης φάσης επεξεργαζόμαστε κάθε κόμβο της παραπάνω λίστας και εξετάζουμε τους δείκτες του. Ένας μη κατάλληλος δείκτης στον γίνεται κατάλληλος με το να τον κάνουμε να δείχνει στον ή στον. Αφού ολοκληρωθεί η παραπάνω διαδικασία όλοι οι δείκτες είναι κατάλληλοι αλλά κάποιοι από τους δείκτες που εξετάσαμε μπορεί να είναι επικαλυπτόμενοι. Δημιουργούμε ένα σύνολο που περιλαμβάνει τους κόμβους που έχουν κάποιο επικαλυπτόμενο δείκτη. Επεξεργαζόμαστε το σύνολο αυτό στη δεύτερη φάση, οπότε και όλοι οι δείκτες γίνονται μη επικαλυπτόμενοι.

100 Ολική διαχρονικότητα με «διάσπαση κόμβων» Λειτουργίες τροποποίησης Δεύτερη φάση Κατά τη διάρκεια εκτέλεσης της δεύτερης φάσης αφαιρούμε ένα κόμβο από το σύνολο και τον επεξεργαζόμαστε, εκτελώντας τα παρακάτω βήματα. Η δεύτερη φάση τερματίζεται όταν το μείνει κενό. Βήμα 1 (προσθήκη νέων δεικτών) : Κατασκευάζουμε μια λίστα που περιέχει τους πρωτότυπους και τους επιπλέον δείκτες του σε διάταξη(από αριστερά προς τα δεξιά) ως προς την προδιατεταγμένη λίστα εκδοχών. Επεξεργαζόμαστε τους δείκτες με αυτή τη σειρά. Έστω ότι επεξεργαζόμαστε ένα επικαλυπτόμενο δείκτη του πεδίου. (Προσπερνάμε τους μη επικαλυπτόμενους δείκτες της.) Έστω ο κόμβος που δείχνει ο και έστω η ετικέτα του. Εισάγουμε στην ένα δείκτη προς τον με όνομα και ετικέτα. (Ο παλαιός δείκτης προς τον είναι τώρα μη επικαλυπτόμενος, αλλά όχι απαραίτητα και ο νέος δείκτης προς τον.) Συνεχίζουμε με τον επόμενο δείκτη της. Μετά το βήμα 1, όλοι οι δείκτες της είναι κατάλληλοι και μη επικαλυπτόμενοι.

101 Ολική διαχρονικότητα με «διάσπαση κόμβων» Λειτουργίες τροποποίησης Δεύτερη φάση Βήμα (διάσπαση του ) : Έστω η ετικέτα του. Αν όλοι οι δείκτες της μπορούν να τοποθετηθούν στον (δηλαδή υπάρχουν το πολύ δείκτες με ετικέτα στα δεξιά του στην προδιατεταγμένη λίστα εκδοχών) τότε τους τοποθετούμε στον και ο δεν διασπάται. Η επεξεργασία του τερματίζεται χωρίς να εκτελέσουμε το βήμα 3. Διαφορετικά χωρίζουμε τους δείκτες σε ομάδες, ξεκινώντας από το τέλος της. Κάθε ομάδα εκτός αυτής που περιλαμβάνει τους δείκτες στην αρχή της, τοποθετείται σε ένα νέο κόμβο στον οποίο πρέπει να υπάρχουν πεδία επιπλέον δεικτών κενά. Η ομάδα στην αρχή της τοποθετείται στον χωρίς απαραίτητα να μένει κάποιο πεδίο επιπλέον δείκτη κενό. Ένας νέος κόμβος έχει ετικέτα ίση με την μικρότερη ετικέτα των δεικτών που αποθηκεύει. Όλοι οι δείκτες του με ετικέτα τοποθετούνται στα πεδία πρωτότυπων δεικτών, και οι δείκτες με ετικέτες στα δεξιά του τοποθετούνται στα πεδία επιπλέον δεικτών. Οι κόμβοι συνδέονται, με τους δείκτες αντιγράφου, σε αύξουσα σειρά ως προς τις ετικέτες τους.

102 Ολική διαχρονικότητα με «διάσπαση κόμβων» Λειτουργίες τροποποίησης Δεύτερη φάση Μετά το βήμα 3 κάποιοι δείκτες μπορεί να γίνουν μη κατάλληλοι, επομένως χρειαζόμαστε ένα ακόμα βήμα. Βήμα 3 (μετατροπή όλων των δεικτών σε κατάλληλους) : Εξετάζουμε τον και τους νέους κόμβους που δημιουργήθηκαν από αυτόν στο βήμα. Έστω το σύνολο αυτών των κόμβων που εξετάζουμε. Κάθε δείκτη που περιέχεται σε κάποιον κόμβο και δείχνει στον τον κάνουμε να δείχνει στον. Επιπλέον, εξετάζοντας τους κόμβους του, μπορούμε να βρούμε όλους τους υπόλοιπους δείκτες που δείχνουν στον. Για κάθε τέτοιο δείκτη με ετικέτα τον κάνουμε να δείχνει στον πιο πρόσφατο κόμβο του με ετικέτα που δεν είναι στα δεξιά του στην προδιατεταγμένη λίστα εκδοχών. Αν κάποιος δείκτης γίνει επικαλυπτόμενος τότε τοποθετούμε στο τον κόμβο που τον περιέχει (αν δεν βρίσκεται εκεί ήδη).

103 Ολική διαχρονικότητα με «διάσπαση κόμβων» Αντισταθμιστική Ανάλυση Θα δείξουμε ότι το αντισταθμιστικό κόστος, σε χώρο και χρόνο, ανά βήμα τροποποίησης είναι. Πρώτα παρατηρούμε τα εξής : α) Στο βήμα 1 τοποθετούνται δείκτες στη λίστα. β) Στο βήμα 3 οι δείκτες που δεν είναι αποθηκευμένοι στους κόμβους του βρίσκονται το πολύ σε κόμβους. Άρα επεξεργαζόμαστε το πολύ δείκτες και το πολύ κόμβοι εισάγονται στο. Ο χρόνος που απαιτείται για να μετατραπεί ένας δείκτης σε κατάλληλο είναι ανάλογος του. Άρα ο συνολικός χρόνος για την λειτουργία τροποποίησης είναι ανά βήμα τροποποίησης συν ανά νέο κόμβο που δημιουργείται από διάσπαση. Αρκεί λοιπόν να δείξουμε ότι το κάθε βήμα τροποποίησης δημιουργεί, κατά την αντισταθμιστική έννοια, το πολύ ένα σταθερό αριθμό νέων κόμβων.

104 Ολική διαχρονικότητα με «διάσπαση κόμβων» Αντισταθμιστική Ανάλυση Απομένει να δείξουμε ότι το κάθε βήμα τροποποίησης δημιουργεί, κατά την αντισταθμιστική έννοια, νέους κόμβους. Χρησιμοποιούμε την ενεργειακή μέθοδο. Δυναμικό κόμβου με αχρησιμοποίητους επιπλέον δείκτες : όπου Δυναμικό διαχρονικής δομής με κόμβους : όπου Αρχικά, για κενή δομή : Μετά από κάθε τροποποίηση :

105 Ολική διαχρονικότητα με «διάσπαση κόμβων» Αντισταθμιστική Ανάλυση Έστω ότι μια λειτουργία εκτελεί Η πρώτη φάση δημιουργεί το πολύ βήματα τροποποίησης. νέους κόμβους. Έστω ο αριθμός των νέων κόμβων που δημιουργήθηκαν κατά τη διάρκεια της δεύτερης φάσης. Κάθε νέος κόμβος που δημιουργείται στην πρώτη ή στη δεύτερη φάση μπορεί να οδηγήσει στη δημιουργία το πολύ νέων δεικτών : το πολύ ένας νέος εισερχόμενος δείκτης που αντιστοιχεί σε έναν πρωτότυπο δείκτη. Κάθε νέος κόμβος που δημιουργείται στη δεύτερη φάση έχει δυναμικό. Κάθε νέος δείκτης αυξάνει το δυναμικό το πολύ κατά. Όμως κάθε νέος κόμβος που δημιουργείται στη δεύτερη φάση έχει τουλάχιστον δείκτες που δε συνεισφέρουν στο δυναμικό : επιπλέον δείκτες και ένα πρωτότυπο δείκτη.

106 Ολική διαχρονικότητα με «διάσπαση κόμβων» Αντισταθμιστική Ανάλυση Άρα η συνολική μεταβολή του δυναμικού στη δεύτερη φάση είναι Το συνολικό αντισταθμιστικό κόστος χώρου για τη δεύτερη φάση είναι Αφού η λειτουργία πραγματοποίησε ανά βήμα είναι. βήματα, το αντισταθμιστικό κόστος χώρου

Δυναμική Διατήρηση Γραμμικής Διάταξης

Δυναμική Διατήρηση Γραμμικής Διάταξης Διατηρεί μια γραμμική διάταξη δυναμικά μεταβαλλόμενης συλλογής στοιχείων. Υποστηρίζει τις λειτουργίες: Εισαγωγή νέου στοιχείου y αμέσως μετά από το στοιχείο x. x y Διαγραφή στοιχείου y. y Έλεγχος της σειράς

Διαβάστε περισσότερα

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

Διαβάστε περισσότερα

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων κλειδί από ολικά διατεταγμένο σύνολο όπου το κάθε στοιχείο έχει ένα Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου με

Διαβάστε περισσότερα

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών,, τα οποίo είναι υποσύνολο του. Υποστηριζόμενες λειτουργίες αναζήτηση(s,x): εισαγωγή(s,x): διαγραφή(s,x): διάδοχος(s,x): προκάτοχος(s,x):

Διαβάστε περισσότερα

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης Δένδρα στα οποία κάθε κόμβος μπορεί να αποθηκεύει ένα ή περισσότερα κλειδιά. Κόμβος με d διακλαδώσεις : k 1 k 2 k 3 k 4 d-1 διατεταγμένα κλειδιά d διατεταγμένα παιδιά

Διαβάστε περισσότερα

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y

Διαβάστε περισσότερα

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y

Διαβάστε περισσότερα

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y

Διαβάστε περισσότερα

Κεφάλαιο 14 Προηγμένες Ουρές Προτεραιότητας

Κεφάλαιο 14 Προηγμένες Ουρές Προτεραιότητας Κεφάλαιο 14 Προηγμένες Ουρές Προτεραιότητας Περιεχόμενα 14.1 Διωνυμικά Δένδρα... 255 14.2 Διωνυμικές Ουρές... 258 14.1.1 Εισαγωγή στοιχείου σε διωνυμική ουρά... 258 14.1.2 Διαγραφή μεγίστου από διωνυμική

Διαβάστε περισσότερα

Κεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης

Κεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης Κεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης Περιεχόμενα 8.1 Κατηγορίες ισορροπημένων δένδρων αναζήτησης... 155 8.1.1 Περιστροφές... 156 8.2 Δένδρα AVL... 157 8.2.1 Αποκατάσταση συνθήκης ισορροπίας... 158

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι. Λουκάς Γεωργιάδης

Δομές Δεδομένων και Αλγόριθμοι. Λουκάς Γεωργιάδης Δομές Δεδομένων και Αλγόριθμοι Λουκάς Γεωργιάδης loukas@cs.uoi.gr www.cs.uoi.gr/~loukas Στόχοι Μαθήματος Η σχεδίαση και ανάλυση αλγορίθμων και δομών δεδομένων αποτελεί σημαντικό τμήμα της πληροφορικής.

Διαβάστε περισσότερα

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Δομές Δεδομένων (Εργ.) Ακ. Έτος 2017-18 Διδάσκων: Ευάγγελος Σπύρου Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης 1. Στόχος του εργαστηρίου Στόχος του δέκατου εργαστηρίου

Διαβάστε περισσότερα

Κεφάλαιο 13 Αντισταθμιστική Ανάλυση

Κεφάλαιο 13 Αντισταθμιστική Ανάλυση Κεφάλαιο 13 Αντισταθμιστική Ανάλυση Περιεχόμενα 13.1 Αντισταθμιστική Ανάλυση... 248 13.2 Μέθοδοι Αντισταθμιστικής Ανάλυσης... 250 13.2.1 Η χρεωπιστωτική μέθοδος... 250 13.2.2 Η ενεργειακή μέθοδος... 251

Διαβάστε περισσότερα

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

Ουρά Προτεραιότητας (priority queue) Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει τις ακόλουθες λειτουργίες PQinsert : εισαγωγή στοιχείου PQdelmax : επιστροφή του στοιχείου με το μεγαλύτερο* κλειδί και διαγραφή του

Διαβάστε περισσότερα

Κατακερματισμός (Hashing)

Κατακερματισμός (Hashing) Κατακερματισμός (Hashing) O κατακερματισμός είναι μια τεχνική οργάνωσης ενός αρχείου. Είναι αρκετά δημοφιλής μέθοδος για την οργάνωση αρχείων Βάσεων Δεδομένων, καθώς βοηθάει σημαντικά στην γρήγορη αναζήτηση

Διαβάστε περισσότερα

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή

Διαβάστε περισσότερα

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2017-2018 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)

Διαβάστε περισσότερα

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

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες Κατευθυνόμενο γράφημα Συνάρτηση χωρητικότητας 12 16 2 Ροή δικτύου Συνάρτηση αφετηρίακός κόμβος 13 1 με τις ακόλουθες ιδιότητες 4 14 9 7 4 τερματικός κόμβος Περιορισμός χωρητικότητας: Αντισυμμετρία: Διατήρηση

Διαβάστε περισσότερα

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2018-2019 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)

Διαβάστε περισσότερα

Δομές Δεδομένων. Ενότητα 13: B-Δέντρα/AVL-Δέντρα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων

Δομές Δεδομένων. Ενότητα 13: B-Δέντρα/AVL-Δέντρα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων Ενότητα 13: B-Δέντρα/AVL-Δέντρα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε

Διαβάστε περισσότερα

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή (ως τρόπος οργάνωσης αρχείου) μέγεθος

Διαβάστε περισσότερα

Ενότητα 6: Κατακερματισμός Ασκήσεις και Λύσεις

Ενότητα 6: Κατακερματισμός Ασκήσεις και Λύσεις ΗΥ2, Ενότητα : Ασκήσεις και Λύσεις Ενότητα : Κατακερματισμός Ασκήσεις και Λύσεις Άσκηση 1 Χρησιμοποιήστε τη συνάρτηση κατακερματισμού της διαίρεσης ως πρωτεύουσα συνάρτηση κατακερματισμού και τη συνάρτηση

Διαβάστε περισσότερα

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού και κατασκευή BFS δένδρου σε σύγχρονο γενικό δίκτυο Παναγιώτα Παναγοπούλου Περίληψη Εκλογή αρχηγού σε γενικά δίκτυα Ορισμός του προβλήματος Ο αλγόριθμος FloodMax

Διαβάστε περισσότερα

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινοµηµένα Αρχεία Φυσική διάταξη των εγγραφών

Διαβάστε περισσότερα

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

Αντισταθμιστική ανάλυση

Αντισταθμιστική ανάλυση Αντισταθμιστική ανάλυση Θεωρήστε έναν αλγόριθμο Α που χρησιμοποιεί μια δομή δεδομένων Δ : Κατά τη διάρκεια εκτέλεσης του Α η Δ πραγματοποιεί μία ακολουθία από πράξεις. Παράδειγμα: Θυμηθείτε το πρόβλημα

Διαβάστε περισσότερα

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1 Κατακερματισμός 4/3/2009 Μ.Χατζόπουλος 1 H ιδέα που βρίσκεται πίσω από την τεχνική του κατακερματισμού είναι να δίνεται μια συνάρτησης h, που λέγεται συνάρτηση κατακερματισμού ή παραγωγής τυχαίων τιμών

Διαβάστε περισσότερα

ΟΠΣ-ΕΣΠΑ : Ειδική Υπηρεσία Ολοκληρωμένου Πληροφοριακού Συστήματος ΕΚΠΑΙΔΕΥΤΙΚΟΣ ΟΔΗΓΟΣ ΓΙΑ ΤΗ ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ ΚΕΝΤΡΙΚΟΥ ΛΟΓΑΡΙΑΣΜΟΥ

ΟΠΣ-ΕΣΠΑ : Ειδική Υπηρεσία Ολοκληρωμένου Πληροφοριακού Συστήματος ΕΚΠΑΙΔΕΥΤΙΚΟΣ ΟΔΗΓΟΣ ΓΙΑ ΤΗ ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ ΚΕΝΤΡΙΚΟΥ ΛΟΓΑΡΙΑΣΜΟΥ ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΔΗΜΟΣΙΩΝ ΕΠΕΝΔΥΣΕΩΝ & ΕΣΠΑ ΕΘΝΙΚΗ ΑΡΧΗ ΣΥΝΤΟΝΙΣΜΟΥ Ειδική Υπηρεσία Ολοκληρωμένου Πληροφοριακού Συστήματος ΟΠΣ-ΕΣΠΑ 2014-2020: ΕΚΠΑΙΔΕΥΤΙΚΟΣ ΟΔΗΓΟΣ ΓΙΑ ΤΗ ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ ΚΕΝΤΡΙΚΟΥ ΛΟΓΑΡΙΑΣΜΟΥ

Διαβάστε περισσότερα

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο Κατακερματισμός 1 Αποθήκευση εδομένων (σύνοψη) Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο Παραδοσιακά, μία σχέση (πίνακας/στιγμιότυπο) αποθηκεύεται σε ένα αρχείο Αρχείο δεδομένων

Διαβάστε περισσότερα

Δένδρα. Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών :

Δένδρα. Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών : Δένδρα Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών : Ανάλυση αλγορίθμων (π.χ. δένδρα αναδρομής) Δομές δεδομένων (π.χ. δένδρα αναζήτησης) ακμή Κατηγορίες (αύξουσα

Διαβάστε περισσότερα

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα?

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα? Κόκκινα-Μαύρα ένδρα (Red-Black Trees) Ένα κόκκινο-µαύρο δένδρο είναι ένα δυαδικό δένδρο αναζήτησης στο οποίο οι κόµβοι µπορούν να χαρακτηρίζονται από ένα εκ των δύο χρωµάτων: µαύρο-κόκκινο. Το χρώµα της

Διαβάστε περισσότερα

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε μία αναδρομική συνάρτηση που θα παίρνει ως παράμετρο ένα δείκτη στη ρίζα ενός δυαδικού δένδρου και θα επιστρέφει το βαθμό του

Διαβάστε περισσότερα

9. Κόκκινα-Μαύρα Δέντρα

9. Κόκκινα-Μαύρα Δέντρα Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 9. Κόκκινα-Μαύρα Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 9/12/2016 Δέντρα,

Διαβάστε περισσότερα

ΟΠΣ-ΕΣΠΑ : Ειδική Υπηρεσία Ολοκληρωμένου Πληροφοριακού Συστήματος ΕΚΠΑΙΔΕΥΤΙΚΟΣ ΟΔΗΓΟΣ ΓΙΑ ΤΗ ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ ΚΕΝΤΡΙΚΟΥ ΛΟΓΑΡΙΑΣΜΟΥ

ΟΠΣ-ΕΣΠΑ : Ειδική Υπηρεσία Ολοκληρωμένου Πληροφοριακού Συστήματος ΕΚΠΑΙΔΕΥΤΙΚΟΣ ΟΔΗΓΟΣ ΓΙΑ ΤΗ ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ ΚΕΝΤΡΙΚΟΥ ΛΟΓΑΡΙΑΣΜΟΥ ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΔΗΜΟΣΙΩΝ ΕΠΕΝΔΥΣΕΩΝ ΕΣΠΑ ΕΘΝΙΚΗ ΑΡΧΗ ΣΥΝΤΟΝΙΣΜΟΥ Ειδική Υπηρεσία Ολοκληρωμένου Πληροφοριακού Συστήματος ΟΠΣ-ΕΣΠΑ 2014-2020: ΕΚΠΑΙΔΕΥΤΙΚΟΣ ΟΔΗΓΟΣ ΓΙΑ ΤΗ ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ ΚΕΝΤΡΙΚΟΥ ΛΟΓΑΡΙΑΣΜΟΥ

Διαβάστε περισσότερα

Κεφάλαιο 6 Ουρές Προτεραιότητας

Κεφάλαιο 6 Ουρές Προτεραιότητας Κεφάλαιο 6 Ουρές Προτεραιότητας Περιεχόμενα 6.1 Ο αφηρημένος τύπος δεδομένων ουράς προτεραιότητας... 114 6.2 Ουρές προτεραιότητας με στοιχειώδεις δομές δεδομένων... 115 6.3 Δυαδικός σωρός... 116 6.3.1

Διαβάστε περισσότερα

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ Δομές Δεδομένων Τι θα δούμε Ουρές προτεραιότητας Πράξεις Διωνυμικές Ουρές Διωνυμικά Δέντρα Διωνυμικοί Σωροί Ουρές Fibonacci Αναπαράσταση Πράξεις Ανάλυση Συγκρίσεις Ουρές προτεραιότητας

Διαβάστε περισσότερα

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

Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 14: Δέντρα IV B Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: 2 3 Δένδρα, Εισαγωγή και άλλες πράξεις Άλλα Δέντρα: Β δένδρα, Β+ δέντρα, R δέντρα Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ231

Διαβάστε περισσότερα

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

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες Κατευθυνόμενο γράφημα Συνάρτηση χωρητικότητας 2 6 20 Ροή δικτύου Συνάρτηση αφετηρίακός κόμβος 0 με τις ακόλουθες ιδιότητες 9 7 τερματικός κόμβος Περιορισμός χωρητικότητας: Αντισυμμετρία: Διατήρηση ροής:

Διαβάστε περισσότερα

Κατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Κατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινομημένα Αρχεία Φυσική διάταξη των εγγραφών

Διαβάστε περισσότερα

Vodafone Business Connect

Vodafone Business Connect Vodafone Business Connect Vodafone Business WebHosting Αναλυτικός Οδηγός Χρήσης MySQL Manager Αναλυτικός οδηγός χρήσης: MySQL Manager Vodafone Business Connect - Υπηρεσίες φιλοξενίας εταιρικού e-mail &

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη Εσωτερική Μνήμη Κρυφή Μνήμη (Cache) μεγαλύτερη χωρητικότητα Καταχωρητές (Registers) Κεντρική Μονάδα (CPU) μεγαλύτερη ταχύτητα Πολλές σημαντικές εφαρμογές διαχειρίζονται

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού σε γενικά δίκτυα 20 Οκτωβρίου 2016 Παναγιώτα Παναγοπούλου Εκλογή αρχηγού σε γενικά δίκτυα Προηγούμενη διάλεξη Σύγχρονα Κατανεμημένα Συστήματα Μοντελοποίηση συστήματος Πρόβλημα εκλογής αρχηγού

Διαβάστε περισσότερα

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Περιεχόμενα Εισαγωγή στην εφαρμογή... 2 Βασική Σελίδα (Activity)... 3 Ρυθμίσεις... 3 Πελάτες... 6 Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Αποθήκη... 11 Αναζήτηση προϊόντος...

Διαβάστε περισσότερα

ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΓΡΑΦΗΜΑΤΩΝ

ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΓΡΑΦΗΜΑΤΩΝ Συνεκτικότητα Γραφημάτων 123 ΚΕΦΑΛΑΙΟ 4 ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΓΡΑΦΗΜΑΤΩΝ 4.1 Τοπική και Ολική Συνεκτικότητα Γραφημάτων 4.2 Συνεκτικότητα Μη-κατευθυνόμενων Γραφημάτων 4.3 Συνεκτικότητα Κατευθυνόμενων Γραφημάτων

Διαβάστε περισσότερα

Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών. Ένα στοιχείο γράφεται ως, όπου κάθε.

Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών. Ένα στοιχείο γράφεται ως, όπου κάθε. Ψηφιακά Δένδρα Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών τα οποία είναι ακολουθίες συμβάλλων από ένα πεπερασμένο αλφάβητο Ένα στοιχείο γράφεται ως, όπου κάθε. Μπορούμε να

Διαβάστε περισσότερα

ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ

ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ Δομές Δεδομένων Παπαγιαννόπουλος Δημήτριος 30 Μαρτίου 2017 18 Μαΐου 2017 papagianno@ceid.upatras.gr 1 Περιεχόμενα Ουρές προτεραιότητας Πράξεις Διωνυμικές Ουρές Διωνυμικά Δέντρα Διωνυμικοί

Διαβάστε περισσότερα

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1 Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1 Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ.Χατζόπουλος 2 Δένδρο αναζήτησης είναι ένας ειδικός τύπος δένδρου που χρησιμοποιείται για να καθοδηγήσει την αναζήτηση μιας

Διαβάστε περισσότερα

Δομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου

Δομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων κλειδί από ολικά διατεταγμένο σύνολο όπου το κάθε στοιχείο έχει ένα Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου με

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη των υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υπολογιστές και Δεδομένα Κεφάλαιο 3ο Αναπαράσταση Αριθμών www.di.uoa.gr/~organosi 1 Δεκαδικό και Δυαδικό Δεκαδικό σύστημα 2 3 Δεκαδικό και Δυαδικό Δυαδικό Σύστημα

Διαβάστε περισσότερα

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 6. Δυαδικά Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 18/11/2016 Εισαγωγή Τα

Διαβάστε περισσότερα

έντρα ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη

έντρα ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη έντρα 2-3-4 ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη Σημερινό Μάθημα 2-3-4 έντρα Ισοζυγισμένα δέντρα αναζήτησης έντρα αναζήτησης πολλαπλών

Διαβάστε περισσότερα

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος Προγραμματιστική Εργασία - 2o Μέρος

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος Προγραμματιστική Εργασία - 2o Μέρος Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών, 4 Μαρτίου 2019 ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018-2019 Προγραμματιστική Εργασία - 2o Μέρος Ημερομηνία Παράδοσης: Δευτέρα, 13 Μαϊου

Διαβάστε περισσότερα

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΜΑΘΗΜΑ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΑΚΑΔ. ΕΤΟΣ 2011-12 ΔΙΔΑΣΚΟΝΤΕΣ Ιωάννης Βασιλείου Καθηγητής Τιμολέων Σελλής Καθηγητής Άσκηση 1

Διαβάστε περισσότερα

Ισοζυγισμένα υαδικά έντρα Αναζήτησης

Ισοζυγισμένα υαδικά έντρα Αναζήτησης Ισοζυγισμένα υαδικά έντρα Αναζήτησης ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη Ισοζυγισμένα υαδικά έντρα Αναζήτησης Ισοζυγισμένα Α είναι

Διαβάστε περισσότερα

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

Κεφάλαιο 11 Ένωση Ξένων Συνόλων Κεφάλαιο 11 Ένωση Ξένων Συνόλων Περιεχόμενα 11.1 Εισαγωγή... 227 11.2 Εφαρμογή στο Πρόβλημα της Συνεκτικότητας... 228 11.3 Δομή Ξένων Συνόλων με Συνδεδεμένες Λίστες... 229 11.4 Δομή Ξένων Συνόλων με Ανοδικά

Διαβάστε περισσότερα

Εγκατάσταση αρχείων βιβλιοθήκης VHOPE και VHOPE

Εγκατάσταση αρχείων βιβλιοθήκης VHOPE και VHOPE Εγκατάσταση αρχείων βιβλιοθήκης VHOPE και VHOPE Βήμα 1, εγκατάσταση VHOPE Η εφαρμογή VHOPE θα πρέπει να εγκατασταθεί στο PC σας προτού μπορείτε να αρχίσετε να χρησιμοποιείτε το υλικό παρουσίασης σε αυτό

Διαβάστε περισσότερα

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής διαγραφή εισαγωγή Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής

Διαβάστε περισσότερα

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 12/10/2017

Διαβάστε περισσότερα

Διάλεξη 18: B-Δένδρα

Διάλεξη 18: B-Δένδρα Διάλεξη 18: B-Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή & Ισοζυγισμένα Δένδρα 2-3 Δένδρα, Περιγραφή Πράξεων της Εισαγωγής και άλλες πράξεις Β-δένδρα Διδάσκων: Κωνσταντίνος

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 3-4 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητες 3 & 4: ένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε

Διαβάστε περισσότερα

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 24: Μη Ντεντερμινιστικές Μηχανές Turing Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

Διαβάστε περισσότερα

Εγχειρίδιο Χρήσης για Διαχειριστές. Πλατφόρμα Μεταφόρτωσης και Μετατροπής Βίντεο

Εγχειρίδιο Χρήσης για Διαχειριστές. Πλατφόρμα Μεταφόρτωσης και Μετατροπής Βίντεο Εγχειρίδιο Χρήσης για Διαχειριστές Πλατφόρμα Μεταφόρτωσης και Μετατροπής Βίντεο 1. Εισαγωγή 1.1 Περιγραφή Λειτουργίας Πλατφόρμας Η Πλατφόρμα Μεταφόρτωσης και Μετατροπής Βίντεο παρέχει τη δυνατότητα της

Διαβάστε περισσότερα

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 8: Γραμμική Αναζήτηση και Δυαδική Αναζήτηση-Εισαγωγή στα Δέντρα και Δυαδικά Δέντρα-Δυαδικά Δέντρα Αναζήτησης & Υλοποίηση ΔΔΑ με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Σχετικές έννοιες 8.3 Υλοποίηση δοµών δεδοµένων 8.4 Μια σύντοµη µελέτη περίπτωσης 8.5 Προσαρµοσµένοι τύποι δεδοµένων 1 Βασικές δοµές

Διαβάστε περισσότερα

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 15: Διασυνδεμένες Δομές - Λίστες Διασυνδεδεμένες δομές δεδομένων Η μνήμη ενός πίνακα δεσμεύεται συνεχόμενα. Η πρόσβαση στο i-οστό στοιχείο είναι άμεση καθώς η διεύθυνση

Διαβάστε περισσότερα

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016

Διαβάστε περισσότερα

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ 1 ΠΕΡΙΕΧΟΜΕΝΑ 1. ΑΝΑΛΥΣΗ ΜΕΝΟΥ ΕΦΑΡΜΟΓΗΣ... 4 2. ΕΠΕΞΗΓΗΣΗ ΚΕΝΤΡΙΚΟΥ ΜΕΝΟΥ ΚΑΡΤΕΛΑΣ... 5 3. ΔΗΜΙΟΥΡΓΙΑ ΠΕΛΑΤΗ... 6 4. ΑΝΑΖΗΤΗΣΗ ΠΕΛΑΤΗ... 6 5. ΕΠΕΞΕΡΓΑΣΙΑ/ΔΙΑΓΡΑΦΗ

Διαβάστε περισσότερα

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

Κεφάλαιο 10 Ψηφιακά Λεξικά Κεφάλαιο 10 Ψηφιακά Λεξικά Περιεχόμενα 10.1 Εισαγωγή... 213 10.2 Ψηφιακά Δένδρα... 214 10.3 Υλοποίηση σε Java... 222 10.4 Συμπιεσμένα και τριαδικά ψηφιακά δένδρα... 223 Ασκήσεις... 225 Βιβλιογραφία...

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ ΜΑΘΗΜΑ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΑΚΑ. ΕΤΟΣ 2012-13 Ι ΑΣΚΟΝΤΕΣ Ιωάννης Βασιλείου Καθηγητής, Τοµέας Τεχνολογίας

Διαβάστε περισσότερα

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

Ουρά Προτεραιότητας (priority queue) Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει δύο βασικές λειτουργίες : Εισαγωγή στοιχείου με δεδομένο κλειδί. Επιστροφή ενός στοιχείου με μέγιστο (ή ελάχιστο) κλειδί και διαγραφή

Διαβάστε περισσότερα

Κεφ.11: Ευρετήρια και Κατακερματισμός

Κεφ.11: Ευρετήρια και Κατακερματισμός Κεφ.11: Ευρετήρια και Κατακερματισμός Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Κεφ. 11: Ευρετήρια-Βασική θεωρία Μηχανισμοί ευρετηρίου χρησιμοποιούνται για την επιτάχυνση

Διαβάστε περισσότερα

Προσεγγιστικοί Αλγόριθμοι

Προσεγγιστικοί Αλγόριθμοι Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. http://xkcd.com/287/ Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. Πως μπορούμε να αντιμετωπίσουμε το γεγονός ότι είναι απίθανη(;)

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ. Πρόγραμμα Διαχείρισης Α.Π.Δ.

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ. Πρόγραμμα Διαχείρισης Α.Π.Δ. ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ Πρόγραμμα Διαχείρισης Α.Π.Δ. Περιεχόμενα ΚΕΦΑΛΑΙΟ 1 Εγκατάσταση του προγράμματος 1 ΚΕΦΑΛΑΙΟ 2 Οδηγίες χρήσης προγράμματος με παράδειγμα 2 ΚΕΦΑΛΑΙΟ 3 Αντιγραφή Α.Π.Δ. προηγούμενης περιόδου

Διαβάστε περισσότερα

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

Συγχώνευση αλληλογραφίας και συγχώνευση μιας πηγής δεδομένων με ένα κύριο έγγραφο όπως ένα γράμμα ή ένα έγγραφο ετικετών 3.5.1.1 Συγχώνευση αλληλογραφίας και συγχώνευση μιας πηγής δεδομένων με ένα κύριο έγγραφο όπως ένα γράμμα ή ένα έγγραφο ετικετών Ένα σύνηθες πρόβλημα που υπάρχει, είναι η ανάγκη αποστολής επιστολών ή πληροφοριών

Διαβάστε περισσότερα

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

Διαβάστε περισσότερα

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων Ενότητα 4 Επεξεργασία πινάκων 36 37 4.1 Προσθήκη πεδίων Για να εισάγετε ένα πεδίο σε ένα πίνακα που υπάρχει ήδη στη βάση δεδομένων σας, βάζετε τον κέρσορα του ποντικιού στο πεδίο πάνω από το οποίο θέλετε

Διαβάστε περισσότερα

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης Σύνοψη Προηγούμενου Πίνακες (Arrays Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Διαδικαστικά θέματα. Aντικείμενο Μαθήματος. Aντικείμενα, Κλάσεις, Μέθοδοι, Μεταβλητές.

Διαβάστε περισσότερα

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ

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

Διαβάστε περισσότερα

Διάλεξη 14: Δέντρα IV - B-Δένδρα

Διάλεξη 14: Δέντρα IV - B-Δένδρα ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 14: Δέντρα IV - B-Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - 2-3 Δένδρα, Εισαγωγή και άλλες πράξεις - Άλλα Δέντρα: Β-δένδρα, Β+-δέντρα,

Διαβάστε περισσότερα

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Αναπαράσταση Αριθμών

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Αναπαράσταση Αριθμών Αναπαράσταση Αριθμών Δεκαδικό και Δυαδικό Δεκαδικό σύστημα Δεκαδικό και Δυαδικό Μετατροπή Για τη μετατροπή ενός αριθμού από το δυαδικό σύστημα στο δεκαδικό, πολλαπλασιάζουμε κάθε δυαδικό ψηφίο του αριθμού

Διαβάστε περισσότερα

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα). Κ08 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Διδάσκων: Μανόλης Κουμπαράκης Εαρινό Εξάμηνο 2016-2017. Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Διαβάστε περισσότερα

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας ΚΕΦΑΛΑΙΟ 8: Αφηρηµένοι τύποι δεδοµένων 8.1 οµές δεδοµένων (data structures) 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας Αδόµητα δεδοµένα οδός Ζέας

Διαβάστε περισσότερα

Διάλεξη 17: Συμφωνία με Βυζαντινά Σφάλματα. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 17: Συμφωνία με Βυζαντινά Σφάλματα. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 17: Συμφωνία με Βυζαντινά Σφάλματα ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Βυζαντινά Σφάλματα Τι θα δούμε σήμερα Κάτω Φράγμα για Αλγόριθμους Συμφωνίας με Βυζαντινά Σφάλματα: n > 3f Αλγόριθμος Συμφωνίας

Διαβάστε περισσότερα

Πίνακες Συμβόλων. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση

Πίνακες Συμβόλων. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση Πίνακες Συμβόλων χειρότερη περίπτωση μέση περίπτωση εισαγωγή αναζήτηση επιλογή εισαγωγή αναζήτηση διατεταγμένος πίνακας διατεταγμένη λίστα μη διατεταγμένος πίνακας μη διατεταγμένη λίστα δένδρο αναζήτησης

Διαβάστε περισσότερα

Σχεδίαση και Ανάλυση Αλγορίθμων

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4.0 Επιλογή Αλγόριθμοι Επιλογής Select και Quick-Select Σταύρος Δ. Νικολόπουλος 2016-17 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros

Διαβάστε περισσότερα

4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας

4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας 4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας 4.1.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας από βάση δεδομένων Όταν εκκινήσουμε τον Discoverer εμφανίζεται στην οθόνη μας το παράθυρο διαλόγου του βοηθητικού προγράμματος

Διαβάστε περισσότερα

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

Οι λίστες, χάνοντας τα πλεονεκτήματα των πινάκων, λύνουν προβλήματα που παρουσιάζουν οι πίνακες Δομές δεδομένων Πίνακες Οι πίνακες είναι το πιο απλό «μέσο» αποθήκευσης ομοειδούς πληροφορίας. Χρησιμοποιούν ακριβώς όση μνήμη χρειάζεται για την αποθήκευση της πληροφορίας Επιτρέπουν την προσπέλαση άμεσα

Διαβάστε περισσότερα

Πληροφορική 2. Δομές δεδομένων και αρχείων

Πληροφορική 2. Δομές δεδομένων και αρχείων Πληροφορική 2 Δομές δεδομένων και αρχείων 1 2 Δομή Δεδομένων (data structure) Δομή δεδομένων είναι μια συλλογή δεδομένων που έχουν μεταξύ τους μια συγκεκριμένη σχέση Παραδείγματα δομών δεδομένων Πίνακες

Διαβάστε περισσότερα

Σχεδίαση & Ανάλυση Αλγορίθμων

Σχεδίαση & Ανάλυση Αλγορίθμων Σχεδίαση & Ανάλυση Αλγορίθμων Ενότητα 3 Αλγόριθμοι Επιλογής Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Αλγόριθμοι Επιλογής Γνωρίζουμε

Διαβάστε περισσότερα

Εργαστηριακός Οδηγός. Βάσεις Δεδομένων της Γ' Τάξης ΕΠΑΛ

Εργαστηριακός Οδηγός. Βάσεις Δεδομένων της Γ' Τάξης ΕΠΑΛ Άδεια Χρήσης Creative Commons, Αναφορά Προέλευσης 3.0 Ελλάδα 2009-200, Βουρλάκος Μιχαήλ Εργαστηριακός Οδηγός για το μάθημα Βάσεις Δεδομένων της Γ' Τάξης ΕΠΑΛ σε περιβάλλον Microsoft Access Υπεύθυνος Καθηγητής:

Διαβάστε περισσότερα

Προγραµµατισµός Ι (ΗΥ120)

Προγραµµατισµός Ι (ΗΥ120) Προγραµµατισµός Ι (ΗΥ120) Διάλεξη 15: Διασυνδεµένες Δοµές - Λίστες Δοµές δεδοµένων! Ένα τυπικό πρόγραµµα επεξεργάζεται δεδοµένα Πώς θα τα διατάξουµε? 2 Τι λειτουργίες θέλουµε να εκτελέσουµε? Πώς θα υλοποιήσουµε

Διαβάστε περισσότερα

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

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο) ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο) Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου http://www.cs.ucy.ac.cy/courses/epl232 Το μάθημα αυτό

Διαβάστε περισσότερα

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

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 7: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου Διδάσκων:

Διαβάστε περισσότερα

Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση

Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση Πίνακες Διασποράς Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση κλειδί k T 0 1 2 3 4 5 6 7 U : χώρος πιθανών κλειδιών Τ : πίνακας μεγέθους

Διαβάστε περισσότερα

ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ ΙΣΤΟΣΕΛΙΔΩΝ ΜΕΛΩΝ ΔΕΠ, ΤΜΗΜΑΤΟΣ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΑΤΡΩΝ ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΠΛΟΗΓΗΣΗΣ ΚΑΙ ΧΡΗΣΗΣ

ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ ΙΣΤΟΣΕΛΙΔΩΝ ΜΕΛΩΝ ΔΕΠ, ΤΜΗΜΑΤΟΣ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΑΤΡΩΝ ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΠΛΟΗΓΗΣΗΣ ΚΑΙ ΧΡΗΣΗΣ 2013 ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ ΙΣΤΟΣΕΛΙΔΩΝ ΜΕΛΩΝ ΔΕΠ, ΤΜΗΜΑΤΟΣ ΜΑΘΗΜΑΤΙΚΩΝ ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΠΛΟΗΓΗΣΗΣ ΚΑΙ ΧΡΗΣΗΣ Περιήγηση στις δυνατότητες του λογισμικού και στον τρόπο χρήσης του ΟΜΑΔΑ ΕΡΓΟΥ ΔΙΕΥΘΥΝΣΗΣ

Διαβάστε περισσότερα

Διαίρει και Βασίλευε. πρόβλημα μεγέθους Ν. διάσπαση. πρόβλημα μεγέθους k. πρόβλημα μεγέθους Ν-k

Διαίρει και Βασίλευε. πρόβλημα μεγέθους Ν. διάσπαση. πρόβλημα μεγέθους k. πρόβλημα μεγέθους Ν-k Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους k πρόβλημα μεγέθους Ν-k Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση επιλύουμε αναδρομικά τα υποπροβλήματα πρόβλημα μεγέθους k πρόβλημα

Διαβάστε περισσότερα

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Σχεδίαση Βάσεων Δεδομένων

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Σχεδίαση Βάσεων Δεδομένων Ενότητα 3 Σχεδίαση Βάσεων Δεδομένων 17 18 3.1 Εισαγωγή Μία βάση δεδομένων αποτελείται από δεδομένα για διάφορα θέματα τα οποία όμως σχετίζονται μεταξύ τους και είναι καταχωρημένα με συγκεκριμένο τρόπο.

Διαβάστε περισσότερα

3η Σειρά Γραπτών Ασκήσεων

3η Σειρά Γραπτών Ασκήσεων 1/48 3η Σειρά Γραπτών Ασκήσεων Αλγόριθμοι και Πολυπλοκότητα ΣΗΜΜΥ, Εθνικό Μετσόβιο Πολυτεχνείο 2/48 1 Άσκηση 1: Πομποί και Δέκτες 2 Άσκηση 2: Διακοπές στην Ικαρία 3 Άσκηση 3: Επιστροφή στη Γη 4 Άσκηση

Διαβάστε περισσότερα