Μπαλτάς Αλέξανδρος 21 Απριλίου 2015

Σχετικά έγγραφα
Red- black δέντρα Εκτενείς Δομές Δεδομένων (Κεφ. 5)

Red-black δέντρα (Κεφ. 5)

Εκτενείς Δομές Δεδομένων

Εκτενείς Δομές Δεδομένων

ΗΥ360 Αρχεία και Βάσεις εδοµένων

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

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

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

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

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

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

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

Advanced Data Indexing

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ουρές Προτεραιότητας. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Διδάσκων: Κωνσταντίνος Κώστα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Βάσεις Δεδομένων ΙΙ Ενότητα 6

Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL

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

έντρα Πολλαπλής ιακλάδωσης και (a, b)- έντρα

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

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

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

AVL-trees C++ implementation

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

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

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

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

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

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

Αλγόριθµοι και Πολυπλοκότητα

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

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

Ισοζυγισµένο έντρο (AVL Tree)

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης

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

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

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

Insert (P) : Προσθέτει ένα νέο πρότυπο P στο λεξικό D. Delete (P) : Διαγράφει το πρότυπο P από το λεξικό D

ΑΥΤΟΡΓΑΝΟΥΜΕΝΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε:

Advanced Data Indexing

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

ΟιβασικέςπράξειςπουορίζουντονΑΤΔ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

Άσκηση 1. με κόκκινο χρώμα σημειώνονται οι κρίσιμοι κόμβοι

Οι βασικές πράξεις που ορίζουν τον ΑΤ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

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

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

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

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Μάθημα 22: Δυαδικά δέντρα (Binary Trees)

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

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

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

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΕΝΤΡΑ (TREES) B C D E F G H I J K L M

Δομές Δεδομένων Εργαστηριακή Άσκηση Γκόγκος Νίκος Α.Μ.: 4973 Έτος: 3 ο gkogkos@ceid.upatras.gr. Εισαγωγικά:

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 6: Δομές ευρετηρίων για αρχεία

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

JDSL Java Data Structures Library

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο

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

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

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

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

Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών. Καθηγητής: Ν. Μ. Μισυρλής 29 Μαΐου / 18

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

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

Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα

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

Δέντρα (Trees) - Ιεραρχική Δομή

ιαφάνειες παρουσίασης #10 (β)

Εργαστήριο 2 Δυναμικές Δομές Δεδομένων Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

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

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

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

Δομές δεδομένων. Ενότητα 5η: Υλοποίηση Λεξικών με Ισοζυγισμένα Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1

Red-Black Δέντρα. Red-Black Δέντρα

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

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

Βάσεις εδοµένων Ευαγγελία Πιτουρά 2

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Συμβολοσειρές. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

Δοµές Δεδοµένων. 18η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης

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

Transcript:

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ B- Trees Δομές Δεδομένων Μπαλτάς Αλέξανδρος 21 Απριλίου 2015 ampaltas@ceid.upatras.gr

Περιεχόμενα 1. Εισαγωγή 2. Ορισμός B- tree 3. Αναζήτηση σε B- tree 4. Ένθεση σε B- tree 5. Διαγραφή σε B- tree 6. Απόδοση B- tree 7. Υλοποίηση ενός B- tree 8. String B- trees 21 Απριλίου 2015 2

Εισαγωγή Β- tree: Δενδρική δομή Τα δεδομένα σε ένα B- tree αποθηκεύονται ταξινομημένα Χρησιμοποιείται σε υλοποιήσεις Βάσεων Δεδομένων και Filesystems 21 Απριλίου 2015 3

Ορισμός B- tree Ένα Β-tree τάξεως m, είναι ένα δέντρο µε τα εξής χαρακτηριστικά: Η ρίζα έχει τουλάχιστον 2 παιδιά, εκτός εάν είναι φύλλο Κάθε κόµβος έχει το πολύ m παιδιά και m-1 κλειδιά Κάθε κόµβος πλην της ρίζας και των φύλλων έχουν τουλάχιστον m/2 παιδιά Όλα τα φύλλα έχουν το ίδιο ύψος Ένας εσωτερικός κόµβος µε k παιδιά έχει ακριβώς k-1 κλειδιά [m = 3] 21 Απριλίου 2015 4

Ορισμός B- tree k 1 k 2 Τα κλειδιά οργανώνονται σε υποδέντρα παρόμοια με ταν τρόπο που οργανώνονται στα δυαδικά δέντρα. k < k 1 k 1 < k < k 2 k 2 < k 21 Απριλίου 2015 5

Πράξεις σε B- trees Μας ενδιαφέρουν 3 πράξεις: Αναζήτηση (Access) Ένθεση (Insert) Διαγραφή (Delete) 21 Απριλίου 2015 6

Αναζήτηση (Access) H αναζήτηση του στοιχείου x σε ένα B- tree ξεκινά από τη ρίζα και σε κάθε επίπεδο επιλέγεται το αντίστοιχο υποδένδρο στο οποίο περιέχεται η τιμή που αναζητείται. Access(7) [m=3] 21 Απριλίου 2015 7

Ένθεση (Inserxon) Για την εισαγωγή του στοιχείου x σε B- tree ακολουθούνται τα εξής βήματα: Εύρεση του κατάλληλου φύλλου y στο δέντρο για την εισαγωγή της τιμής x (Κλήση της Access(x)). Εισαγωγή του νέου κλειδιού στο φύλλο. Εφαρμογή επανορθωτικών πράξεων αν προκύπτει υπερχείλιση. 21 Απριλίου 2015 8

Ένθεση (Inserxon) Περίπτωση 1: Καμμία Υπερχείλιση Εάν δεν υπάρχει υπερχείλιση, η ένθεση γίνεται κανονικά. Insert(11) [m=3] 21 Απριλίου 2015 9

Ένθεση (Inserxon) Περίπτωση 1: Καμμία Υπερχείλιση Εάν δεν υπάρχει υπερχείλιση, η ένθεση γίνεται κανονικά. Insert(11) [m=3] 21 Απριλίου 2015 10

Ένθεση (Inserxon) Περίπτωση 2: Υπερχείλιση Υπερχείλιση προκύπτει όταν μετά την ένθεση ένα φύλλο έχει m κλειδιά. Για να επιλυθεί το πρόβλημα εφαρμόζουμε τον μετασχηματισμό της διάσπασης ως εξής: Επιλέγεται το μεσαίο κλειδί x του κόμβου που είναι προς διάσπαση, μεταφέρεται στον γονέα, και ο κόμβος διασπάται σε 2 κόμβους. Τα μικρότερα κλειδιά από το x τοποθετούνται στο αριστερό υποδέντρο του x, ενώ τα μεγαλύτερα στο δεξιό. Insert(15) [m=3] 21 Απριλίου 2015 11

Ένθεση (Inserxon) Περίπτωση 2: Υπερχείλιση Υπερχείλιση προκύπτει όταν μετά την ένθεση ένα φύλλο έχει m κλειδιά. Για να επιλυθεί το πρόβλημα εφαρμόζουμε τον μετασχηματισμό της διάσπασης ως εξής: Επιλέγεται το μεσαίο κλειδί x του κόμβου που είναι προς διάσπαση, μεταφέρεται στον γονέα, και ο κόμβος διασπάται σε 2 κόμβους. Τα μικρότερα κλειδιά από το x τοποθετούνται στο αριστερό υποδέντρο του x, ενώ τα μεγαλύτερα στο δεξιό. Insert(15) [m=3] 21 Απριλίου 2015 12

Ένθεση (Inserxon) Περίπτωση 2: Υπερχείλιση Υπερχείλιση προκύπτει όταν μετά την ένθεση ένα φύλλο έχει m κλειδιά. Για να επιλυθεί το πρόβλημα εφαρμόζουμε τον μετασχηματισμό της διάσπασης ως εξής: Επιλέγεται το μεσαίο κλειδί x του κόμβου που είναι προς διάσπαση, μεταφέρεται στον γονέα, και ο κόμβος διασπάται σε 2 κόμβους. Τα μικρότερα κλειδιά από το x τοποθετούνται στο αριστερό υποδέντρο του x, ενώ τα μεγαλύτερα στο δεξιό. Insert(15) [m=3] 21 Απριλίου 2015 13

Ένθεση (Inserxon) Μετά τη διάσπαση ενός φύλλου, μπορεί να έχουμε διαδοχικές διασπάσεις μέχρι και τη ρίζα. Insert(3) [m=3] 21 Απριλίου 2015 14

Ένθεση (Inserxon) Μετά τη διάσπαση ενός φύλλου, μπορεί να έχουμε διαδοχικές διασπάσεις μέχρι και τη ρίζα. Insert(3) [m=3] 21 Απριλίου 2015 15

Ένθεση (Inserxon) Μετά τη διάσπαση ενός φύλλου, μπορεί να έχουμε διαδοχικές διασπάσεις μέχρι και τη ρίζα. Insert(3) [m=3] 21 Απριλίου 2015 16

Ένθεση (Inserxon) Μετά τη διάσπαση ενός φύλλου, μπορεί να έχουμε διαδοχικές διασπάσεις μέχρι και τη ρίζα. Insert(3) [m=3] 21 Απριλίου 2015 17

Διαγραφή (Delexon) Για την διαγραφή ενος στοιχείου x σε B- tree ακολουθούνται τα εξής βήματα: Εύρεση του x σε ένα φύλλο του δέντρου (Κλήση της Access(x)). Διαγραφή του κλειδιού x Εφαρμογή επανορθωτικών πράξεων αν διαταραχθούν οι ιδιότητες του δέντρου. 21 Απριλίου 2015 18

Διαγραφή (Delexon) Περίπτωση 1: Η μορφή του δέντρου δε διαταράσσεται Delete(11) [m=3] 21 Απριλίου 2015 19

Διαγραφή (Delexon) Περίπτωση 1: Η μορφή του δέντρου δε διαταράσσεται Delete(11) [m=3] 21 Απριλίου 2015 20

Διαγραφή (Delexon) Περίπτωση 2: Η μορφή του δέντρου διαταράσσεται, και υπάρχει γειτονικός κόμβος του κόμβου που υπέστη διαγραφή, με παραπάνω από τα ελάχιστα δυνατά κλειδιά. Λύση: Περιστροφή Delete(10) [m=3] 21 Απριλίου 2015 21

Διαγραφή (Delexon) Περίπτωση 2: Η μορφή του δέντρου διαταράσσεται, και υπάρχει γειτονικός κόμβος του κόμβου που υπέστη διαγραφή, με παραπάνω από τα ελάχιστα δυνατά κλειδιά. Λύση: Περιστροφή Delete(10) [m=3] 21 Απριλίου 2015 22

Διαγραφή (Delexon) Περίπτωση 2: Η μορφή του δέντρου διαταράσσεται, και υπάρχει γειτονικός κόμβος του κόμβου που υπέστη διαγραφή, με παραπάνω από τα ελάχιστα δυνατά κλειδιά. Λύση: Περιστροφή Delete(10) [m=3] 21 Απριλίου 2015 23

Διαγραφή (Delexon) Περίπτωση 2: Η μορφή του δέντρου διαταράσσεται, και υπάρχει γειτονικός κόμβος του κόμβου που υπέστη διαγραφή, με παραπάνω από τα ελάχιστα δυνατά κλειδιά. Λύση: Περιστροφή Delete(10) [m=3] 21 Απριλίου 2015 24

Διαγραφή (Delexon) Περίπτωση 3: Η μορφή του δέντρου διαταράσσεται, και ΔΕΝ υπάρχει γειτονικός κόμβος του κόμβου που υπέστη διαγραφή, με παραπάνω από τα ελάχιστα δυνατά κλειδιά. Λύση: Συγχώνευση Delete(10) [m=3] 21 Απριλίου 2015 25

Διαγραφή (Delexon) Περίπτωση 3: Η μορφή του δέντρου διαταράσσεται, και ΔΕΝ υπάρχει γειτονικός κόμβος του κόμβου που υπέστη διαγραφή, με παραπάνω από τα ελάχιστα δυνατά κλειδιά. Λύση: Συγχώνευση Delete(10) [m=3] 21 Απριλίου 2015 26

Διαγραφή (Delexon) Περίπτωση 3: Η μορφή του δέντρου διαταράσσεται, και ΔΕΝ υπάρχει γειτονικός κόμβος του κόμβου που υπέστη διαγραφή, με παραπάνω από τα ελάχιστα δυνατά κλειδιά. Λύση: Συγχώνευση Delete(10) [m=3] 21 Απριλίου 2015 27

Απόδοση Πολυπλοκότητες χειρότερης περίπτωσης: Search: O(log n) Insert: O(log n) Delete: O(log n) 21 Απριλίου 2015 28

Παρουσίαση Υλοποίησης 21 Απριλίου 2015 29

Παρουσίαση Υλοποίησης 21 Απριλίου 2015 30

Παρουσίαση Υλοποίησης 21 Απριλίου 2015 31

Παρουσίαση Υλοποίησης 21 Απριλίου 2015 32

Παρουσίαση Υλοποίησης 21 Απριλίου 2015 33

String B- tree 21 Απριλίου 2015 34

String B- tree 21 Απριλίου 2015 35

References h ps://www.cs.usfca.edu/~galles/visualizaxon/btree.html h p://algs4.cs.princeton.edu/62btrees/btree.java.html 24 Μαρτίου 2015 36

Ευχαριστώ!? 24 Μαρτίου 2015 37