Δομές Δεδομένων. Λουκάς Γεωργιάδης.

Σχετικά έγγραφα
Δομές Δεδομένων. Λουκάς Γεωργιάδης.

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης

Standard Template Library (STL) C++ library

Δομές Δεδομένων Standard Template Library (STL) 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ

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

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

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

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

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

Standard Template Library (STL)

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

Ανάπτυξη και Σχεδίαση Λογισμικού

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

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

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

οµές εδοµένων 3 ο Εξάµηνο Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

19. ΠΡΟΤΥΠΑ (TEMPLATES)

Προγραμματισμός Ι (HY120)

Προγραμματιστικές Τεχνικές

Αντικειμενοστραφής Προγραμματισμός

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

JDSL Java Data Structures Library

Σύνοψη Προηγούμενου (1/2) Στοίβες, Ουρές, Ουρές Προτεραιότητας. Σύνοψη Προηγούμενου (2/2) Σημερινό Μάθημα. Πίνακες. Εισαγωγή, σε χρόνο O(1).

ο ρόλος των αλγορίθμων στις υπολογιστικές διαδικασίες Παύλος Εφραιμίδης Δομές Δεδομένων και Αλγόριθμοι

Περιεχόμενα. 2 Αριθμητικά συστήματα

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

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Εισαγωγή στις Αρχές της επιστήμης των Η/Υ. Β Λυκείου

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

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

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

Tύπος δεδοµένων (data type) µιας µεταβλητής (σε µια γλώσσα προγραµµατισµού) είναι το σύνολο των τιµών που µπορεί να πάρει η µεταβλητή.

περιεχόμενα υπολογιστικό πρόβλημα αλγόριθμοι παράδειγμα ταξινόμησης ταξινόμηση αλγόριθμοι τεχνολογία αλγορίθμων Παύλος Εφραιμίδης

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο. Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

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

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

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι

Περιεχόμενα. Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23. Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ

ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες

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

Ουρά Προτεραιότητας: Heap

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

ΑΕΠΠ Ερωτήσεις θεωρίας

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

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

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

Επανάληψη για τις Τελικές εξετάσεις

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Τεχνολογίες Υλοποίησης Αλγορίθµων

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

Δομημένος Προγραμματισμός (ΤΛ1006)

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

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

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

Περιεχόμενα. Περιεχόμενα

Επιµέλεια Θοδωρής Πιερράτος

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

Περίγραμμα. Διαδικαστικά. Εργαστήρια Τεχνικών Προγραμματισμού 21/2/2017. ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ και Τεχνικές Προγραμματισμού

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ και Τεχνικές Προγραμματισμού

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

Εισαγωγή στη γλώσσα προγραμματισμού C++

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στις Αρχές της επιστήμης των Η/Υ. Β Λυκείου

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

επιφάνεια πυριτίου Αναφορά στο Εκπαιδευτικό Υλικό : 5. Αναφορά στο Εργαστήριο :

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

Αναδρομικοί Αλγόριθμοι

Αναζήτηση σε Γράφους. Μανόλης Κουμπαράκης. ΥΣ02 Τεχνητή Νοημοσύνη 1

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

Η γλώσσα προγραμματισμού C

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

Μάθημα 21: Ουρές (Queues)

ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++

Υπολογιστικό Πρόβληµα

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

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

ΓΕ0170 -Αλγόριθμοι και Προηγμένες Προγραμματικές Τεχνικές. Εισαγωγή. Νίκος Αθανάσης.

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Εισαγωγή στους Αλγορίθμους Ενότητα 1η

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

Transcript:

Δομές Δεδομένων http://www.cs.uoi.gr/~loukas/courses/data_structures/ Λουκάς Γεωργιάδης email: loukas@cs.uoi.gr

Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δομή Δεδομένων: Μέθοδος αποθήκευσης και επεξεργασίας δεδομένων Δεδομένα: Σύνολο από πληροφορίες που πρέπει να αποθηκευτούν στον υπολογιστή

Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος

Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Ιστορικά στοιχεία Abū Abd Allāh Muhammad ibn Mūsā al-khwārizmī (780-850 μχ, περίπου)

Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Ιστορικά στοιχεία Abū Abd Allāh Muhammad ibn Mūsā al-khwārizmī (780-850 μχ, περίπου) Αλλά και παλαιότερα Ευκλείδης (300 πχ) Αλγόριθμος του Ευκλείδη για εύρεση μέγιστου κοινού διαιρέτη Βασίζεται στον κανόνα όπου είναι θετικοί ακέραιοι

Παραδείγματα: Αναζήτηση/Ενημέρωση σε Βάση Δεδομένων

Παραδείγματα: Πλοήγηση (Navigation)

Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Παράδειγμα: Εύρεση ελαφρύτατων διαδρομών σε γράφημα 10 9 3 2 6 4 5 7 Παράδειγμα: Ουρά προτεραιότητας: επιστρέφει από μία συλλογή αντικειμένων το αντικείμενο με την ελάχιστη τιμή 2 Δομή Δεδομένων: Μέθοδος αποθήκευσης και επεξεργασίας δεδομένων

Δομή Δεδομένων: Μέθοδος αποθήκευσης και επεξεργασίας δεδομένων Γλώσσες προγραμματισμού όπως η C++ περιέχουν βιβλιοθήκες με χρήσιμες δομές δεδομένων C++ Standard Library: Standard Template Library (STL) bitset deque list map multimap multiset priority_queue queue set stack vector Bitset Double ended queue List Map Multiple-key map Multiple-key set Priority queue FIFO queue Set LIFO stack Vector

Δομή Δεδομένων: Μέθοδος αποθήκευσης και επεξεργασίας δεδομένων

Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δομή Δεδομένων: Μέθοδος αποθήκευσης και επεξεργασίας δεδομένων Μερικές εφαρμογές Βιολογία: χαρτογράφηση ανθρώπινου γονιδιώματος, δίπλωμα πρωτεϊνών, Διαδίκτυο: αναζήτηση, δρομολόγηση πακέτων, Υπολογιστές: σχεδιασμός VLSI, μεταγλωττιστές, Ασφάλεια: ηλεκτρονικό εμπόριο, ασφαλής μετάδοση δεδομένων, Βιομηχανία: κατανομή πόρων, βελτιστοποίηση παραγωγής,

Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δομή Δεδομένων: Μέθοδος αποθήκευσης και επεξεργασίας δεδομένων Οι αλγόριθμοι μπορούν να περιγραφούν σε φυσική γλώσσα με διαγράμματα ροής με ψευδο-κώδικα με κώδικα σε κάποια γλώσσα προγραμματισμού

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

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

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

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

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

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

Παράδειγμα: Ακολουθιακή (γραμμική) αναζήτηση Μας δίνεται μία ακολουθία από ακέραιους και ένας ακέραιος Θέλουμε να βρούμε ένα τέτοιο ώστε Ακολουθιακή αναζήτηση: εξετάζουμε τα στοιχεία της ακολουθίας ξεκινώντας από τη θέση 1, προχωρώντας στη θέση 2, θέση 3, κ.ο.κ. μέχρι να βρούμε το το ζητούμενο στοιχείο ή μέχρι να εξαντλήσουμε την ακολουθία. Π.χ. βρέθηκε!

Παράδειγμα: Ακολουθιακή (γραμμική) αναζήτηση Μας δίνεται μία ακολουθία από ακέραιους και ένας ακέραιος Θέλουμε να βρούμε ένα τέτοιο ώστε Ακολουθιακή αναζήτηση: εξετάζουμε τα στοιχεία της ακολουθίας ξεκινώντας από τη θέση 1, προχωρώντας στη θέση 2, θέση 3, κ.ο.κ. μέχρι να βρούμε το το ζητούμενο στοιχείο ή μέχρι να εξαντλήσουμε την ακολουθία. int linear_search(int a[], int v, int l, int r) { int i; for (i=l; i<=r; i++) if (v == a[i]) return i; return -1; }

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

Δομή Δεδομένων: Μέθοδος αποθήκευσης και επεξεργασίας δεδομένων Δεδομένα: Σύνολο από πληροφορίες που πρέπει να αποθηκευτούν στον υπολογιστή Βασικές Λειτουργίες εισαγωγή στοιχείου διαγραφή στοιχείου αναζήτηση στοιχείου ταξινόμηση διάδοχος προκάτοχος μέγιστο/ελάχιστο

... Βασικές έννοιες και εφαρμογές Υπολογιστικό Μοντέλο Ένας επεξεργαστής και μεγάλος χώρος μνήμης Κάθε θέση μνήμης έχει μια αριθμητική διεύθυνση Η μνήμη είναι τυχαίας προσπέλασης: η πρόσβαση σε οποιαδήποτε θέση μνήμης (ανεξάρτητα από τη διεύθυνσή της) γίνεται με την ίδια ταχύτητα 0 1 2

Τύποι Δεδομένων Η πληροφορία κωδικοποιείται µε bits. Οι τύποι δεδομένων µας επιτρέπουν να ερμηνεύσουμε σωστά την κωδικοποίηση αυτή. Τύποι δεδομένων του υλικού αριθμοί, χαρακτήρες,, στο υλικό Ιδεατοί τύποι δεδομένων τύποι δεδομένων σε επίπεδο γλώσσας προγραμματισμού (πχ στη C: int, long, float, double, char) Αφηρημένοι τύποι δεδοµένων τύποι δεδομένων που ορίζονται από τον προγραμματιστή

Αξιολόγηση Εργαστηριακές ασκήσεις ~7 εργαστηριακές ασκήσεις: Μελέτη αλγόριθμων και δομών δεδομένων - υλοποίηση σε γλώσσα προγραμματισμού C Κάθε ομάδα αποτελείται από 1 έως 3 άτομα Ασκήσεις για το σπίτι ~3 σετ ασκήσεων (ατομικά): θεωρητική μελέτη-ανάλυση αλγόριθμων και δομών δεδομένων Πληροφορίες και ανακοινώσεις μέσω της ιστοσελίδας του μαθήματος

Βιβλία