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

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

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

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

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

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

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

Διοικητική Λογιστική

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

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Βάσεις Περιβαλλοντικών Δεδομένων

Ψηφιακή Επεξεργασία Εικόνων

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Δομές δεδομένων. Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

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

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Μηχανολογικό Σχέδιο Ι

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

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

Εισαγωγή στους Υπολογιστές

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Κβαντική Επεξεργασία Πληροφορίας

Διοικητική Λογιστική

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort)

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Βάσεις Περιβαλλοντικών Δεδομένων

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Τεχνικό Σχέδιο - CAD

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Δομές Δεδομένων Ενότητα 1

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Βέλτιστος Έλεγχος Συστημάτων

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 8: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΝΤΡΟΥ ΚΑΙ ΣΩΡΟΥ ΓΙΑ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗΣ ΑΛΓΟΡΙΘΜΟΣ HEAPSORT

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

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

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

Κβαντική Επεξεργασία Πληροφορίας

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

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

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Χωρικές σχέσεις και Γεωμετρικές Έννοιες στην Προσχολική Εκπαίδευση

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

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

Τεχνικό Σχέδιο - CAD

Λογιστική Κόστους Ενότητα 10: Ασκήσεις Προτύπου Κόστους Αποκλίσεων.

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

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

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Κβαντική Επεξεργασία Πληροφορίας

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

Τεχνολογία Πολιτισμικού Λογισμικού

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Διαχείριση Πολιτισμικών Δεδομένων

Ιστορία της μετάφρασης

Θέματα Εφαρμοσμένης. Ενότητα 14.2: Η ψήφος στα πρόσωπα. Θεόδωρος Χατζηπαντελής Τμήμα Πολιτικών Επιστημών ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 6: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ: ΠΡΟΒΛΗΜΑ ΑΝΑΖΗΤΗΣΗΣ

Ψηφιακή Επεξεργασία Εικόνων

Κοινωνία & Υγεία Υγεία Πρόληψη Προαγωγή υγείας: Βαθμίδες πρόληψης

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Διδακτική Πληροφορικής

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

Πρακτική Άσκηση σε σχολεία της δευτεροβάθμιας εκπαίδευσης

Δομημένος Προγραμματισμός

Ψηφιακή Επεξεργασία Εικόνων

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Βάσεις Περιβαλλοντικών Δεδομένων

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 12: Αντιμετώπιση Περιορισμών Αλγοριθμικής Ισχύος

Γενική Φυσική Ενότητα: Ταλαντώσεις

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

Προγραμματισμός Η/Υ. 7 η ενότητα: Αρχεία. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Έλεγχος Ποιότητας Φαρμάκων

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Αλγόριθμοι και πολυπλοκότητα Bucket-Sort και Radix-Sort

Εισαγωγή στην Διοίκηση Επιχειρήσεων

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις

Εισαγωγή στην Πληροφορική

Δομές Δεδομένων Ενότητα 3

Μάρκετινγκ Αγροτικών Προϊόντων

Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός

Transcript:

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

Ενότητες 3 & 4: ένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε µία αναδροµική συνάρτηση που θα παίρνει ως παράµετρο ένα δείκτη στη ρίζα ενός δυαδικού δένδρου και θα επιστρέφει το βαθµό του διατεταγµένου δένδρου (δηλαδή το µέγιστο πλήθος παιδιών µεταξύ των κόµβων του δένδρου). Ποιά είναι η χρονική πολυπλοκότητα του αλγορίθµου σας και γιατί; Λύση int TreeDegree (st ruct node * r) { int ld, rd, deg = 0; // εκτελεί µεταδιατεταγµένη διάσχιση του δένδρου Visit if (r == NULL) return 0; ld = TreeDegree (r lc ); // υπολόγισε το µέγιστο βαθµό στο αριστερό υποδένδρο rd = TreeDegree (r rc ); // υπολόγισε το µέγιστο βαθµό στο δεξιό υποδένδρο if (r lc!= NULL) deg++; // υπολόγισε το βαθµό του r, ο οποίος θα είναι 0, 1 ή 2 if (r rc!= NULL) deg++; return max{deg, ld, rd ; // επέστρεψε το µέγιστο µεταξύ του βαθµού του r και // των βαθµών ld και rd του αριστερού και δεξιού υποδένδρου, // αντίστοιχα Χρονική Πολυπλοκότητα: Η TreeDegree() εκτελεί διάσχιση στο δένδρο και για κάθε κόµβο υπολογίζει πόσα παιδιά έχει ο κόµβος. Άρα, η χρονική πολυπλοκότητα είναι O(n), όπου n είναι το πλήθος των κόµβων του δένδρου. Χωρική Πολυπλοκότητα: Για κάθε αναδροµική κλήση, δηµιουργείται στη µνήµη ένα activation record για την αποθήκευση των παραµέτρων και των τοπικών µεταβλητών του στιγµιότυπου της TreeDegree() που ενεργοποιείται µε την κλήση. Κάθε χρονική στιγµή έχουµε O(h) κλήσεις της TreeDegree() ταυτόχρονα ενεργές, όπου h είναι το ύψος του δένδρου. Εποµένως, η µνήµη που απαιτείται για να τρέξει η TreeDegree() (επιπρόσθετα της µνήµης για την αποθήκευση του δένδρου) είναι O(h). Άσκηση 2 Γράψτε µία αναδροµική συνάρτηση, η οποία θα έχει, ως παράµετρο, ένα δείκτη στη ρίζα ενός δυαδικού δένδρου που αναπαριστά ένα (όχι απαραίτητα δυαδικό) διατεταγµένο δένδρο και θα επιστρέφει το βαθµό του διατεταγµένου δένδρου (δηλαδή το µέγιστο πλήθος παιδιών µεταξύ των κόµβων του δένδρου). Αν ο βαθµός του διατεταγµένου δένδρου είναι k, η συνάρτηση

πρέπει να εκτελείται σε O(nk), όπου n είναι το πλήθος των κόµβων του δένδρου. Εξηγήστε ποιες είναι οι διαφορές του αλγορίθµου που σχεδιάσατε συγκριτικά µε τον αλγόριθµο που σχεδιάσατε στην Άσκηση 1, καθώς και γιατί αυτές οι αλλαγές είναι απαραίτητες. Επιχειρηµατολογήστε για την χρονική πολυπλοκότητα του αλγορίθµου σας. Visit Λύση int TreeDegree(struct node * r) { int ld, rd, deg = 0; if (r == NULL) return 0; ld = TreeDegree(r lc); // αναδροµικές κλήσεις για διάσχιση του δένδρου rd = TreeDegree(r rc); p = r lc; while (p!= NULL) { deg++; // ξεκινώντας από το αριστερότερο παιδί του κόµβου r // διασχίζουµε όλα τα παιδιά του r // και µετράµε πόσα είναι στην µεταβλητή deg p = p rs; // έτσι η deg στο τέλος της while περιέχει το βαθµό του r return max{deg, ld, rd; // επιστρέφουµε το µέγιστο µεταξύ του βαθµού του r και // των βαθµών του αριστερού και του δεξιού του υποδένδρου Το µόνο που αλλάζει είναι ηvisit(). Η προσπέλαση των παιδιών ενός κόµβου, για να µπορέσουµε να τα µετρήσουµε και να υπολογίσουµε το βαθµό του, γίνεται προσπελάζοντας πρώτα το αριστερότερο παιδί του κόµβου και στη συνέχεια τη λίστα των αδελφικών κόµβων αυτού του παιδιού προκειµένου να βρω τα υπόλοιπα παιδιά του κόµβου. Η TreeDegree() εκτελεί µια µεταδιατεταγµένη διάσχιση των κόµβων. Για κάθε κόµβο v που επισκεπτόµαστε, το κόστος για να εκτελέσουµε των κώδικα Visit είναι O(k), όπου k είναι ο βαθµός του κόµβου του διατεταγµένου δένδρου που αναπαρίσταται από τον v. Άρα, η συνολική πολυπλοκότητα της TreeDegree() είναι Ο(nk). Άσκηση 3 Περιγράψτε αλγόριθµο, ο οποίος θα παίρνει, ως όρισµα, έναν δείκτη p σε έναν κόµβο ενός διπλά-συνδεδεµένου δυαδικού δένδρου και θα επιστρέφει τον προηγούµενο του κόµβου στην προδιατεταγµένη διάσχιση. Λύση: struct node *PreOrderPredecessor ( struct node * p) { struct node *q, *prevq = NULL; if (p parent == NULL){ p r i n t ( There is only one node in the tree ); return NULL; if (p == p parent lc) // αν είµαι αριστερό παιδί του πατέρα µου

return p parent; // ο προηγούµενος στην προδιατεταγµένη είναι ο πατέρας µου // ακολουθεί κώδικας για την περίπτωση που ο κόµβος // στον οποίο δείχνει ο p είναι δεξί παιδί του πατέρα του q = p parent lc; // ο προηγούµενος βρίσκεται στο αριστερό υποδένδρο του πατέρα prevq = p parent; // και είναι το δεξιότερο φύλλο σε αυτό το υποδένδρο while (q!= NULL) { // επαναληπτικά prevq = q; q rc; // κατεβαίνω προς τα δεξιά if (q == NULL) q= prevq lc; // µέχρι να βγω σε NULL // αν ο τελευταίος κόµβος που διέσχισα // έχει αριστερό παιδί, συνεχίζω την ίδια // διαδικασία στο υποδένδρο του παιδιού αυτού // όταν βγαίνω από τη while, ο q είναι NULL και ο prevq δείχνει στο δεξιότερο φύλλο // του αριστερού υποδένδρου του πατέρα του p return prevq; // ο prevq είναι εποµένως ο προηγούµενος του p // στην προδιατεταγµένη διάσχιση και τον επιστρέφω Άσκηση 4 (Ταξινοµηµένα υαδικά ένδρα) 1. Ας υποθέσουµε ότι ένα ταξινοµηµένο δυαδικό δένδρο αποτελείται από τα κλειδιά 1 έως 1000. Έστω ότι αναζητείται το κλειδί 363. Εξετάστε αν οι παρακάτω ακολουθίες κλειδιών είναι έγκυρες ακολουθίες κόµβων που θα µπορούσαν να προσπελάζονται από το γνωστό αλγόριθµο αναζήτησης σε ταξινοµηµένα δυαδικά δένδρα. α. 102, 352, 501, 498, 430, 444, 497, 463, 363 β. 974, 270, 961,299, 948, 298, 412, 413, 363 γ. 935, 278, 347, 621, 299, 392, 358, 363 2. Ζωγραφίστε 10 ταξινοµηµένα δένδρα ύψους 5 µε κλειδιά 3, 7, 9, 14, 19, 22, 26. 3. Εισάγετε τα κλειδιά 5, 1, 18 στο δένδρο του Σχήµατος 1. 4. Παρουσιάστε τα δένδρα που προκύπτουν κατά τη διαγραφή των κλειδιών 10, 20, 1 και 15 από το δένδρο που προκύπτει µετά τις εισαγωγές του ερωτήµατος 3. Λύση 1. α. Το µονοπάτι που θα είχε ακολουθήσει ο αλγόριθµος αναζήτησης προκειµένου να επισκεφτεί τους κόµβους της ακολουθίας α. φαίνεται στο Σχήµα 2α. Παρατηρούµε πως από το κλειδί 430, η αναζήτηση θα έπρεπε να συνεχίσει σε µικρότερα κλειδιά και όχι σε µεγαλύτερα, όπως έγινε. Παρατηρήστε ότι στο Σχήµα 2α. το κλειδί 363 είναι στα δεξιά του 430 (που καταστρατηγεί την ταξινόµηση του δένδρου). Εποµένως, η ακολουθία 1α. δεν είναι έγκυρη. Σχήµα 1

β. Το µονοπάτι που θα είχε ακολουθήσει ο αλγόριθµος αναζήτησης προκειµένου να επισκεφτεί τους κόµβους της ακολουθίας β. φαίνεται στο Σχήµα 1β. Παρατηρούµε πως το κλειδί 298 βρίσκεται στα δεξιά του 299. Αυτό καταστρατηγεί την ταξινόµηση του δένδρου). Εποµένως, η ακολουθία 1β. επίσης δεν είναι έγκυρη. γ. Το µονοπάτι που θα είχε ακολουθήσει ο αλγόριθµος αναζήτησης προκειµένου να επισκεφτεί τους κόµβους της ακολουθίας γ. φαίνεται στο Σχήµα 2γ. Παρατηρούµε ότι το κλειδί 299 βρίσκεται στα δεξιά του 347 το οποίο καταστρατηγεί την ιδιότητα ταξινόµησης του δένδρου. Εποµένως, η ακολουθία 1γ. δεν είναι έγκυρη. 2. Τα δένδρα παρουσιάζονται στο Σχήµα 3. α. β. γ. γ. Σχήµα 2 Σχήµα 3

3. Η διαδοχική εισαγωγή των κλειδιών παρουσιάζεται στο Σχήµα 4. Σχήµα 4 4. Η διαδοχική διαγραφή των κλειδιών 10, 20, 1 και 15 αναπαρίσταται στο σχήµα 5.

Σχήµα 5

Σημειώματα Σημείωμα αναφοράς Copyright Πανεπιστήμιο Κρήτης, Παναγιώτα Φατούρου. Παναγιώτα Φατούρου. «Δομές Δεδομένων. Άσκηση αυτοαξιολόγησης 3-4». Έκδοση: 1.0. Ηράκλειο 2013. Διαθέσιμο από τη δικτυακή διεύθυνση: http://www.csd.uoc.gr/~hy240/. Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση, Όχι Παράγωγο Έργο 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-nd/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Κρήτης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.