ΓΛΩΣΣΑΡΙ Ακολουθία Fibonacci Άκυκλο γράφημα Αλγόριθμος Αλγόριθμος Dijkstra Αλγόριθμος Kruskal Αλγόριθμος Prim Αλγόριθμος Strassen Αλγόριθμος

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

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

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

Στοιχεία Θεωρίας Γράφων (Graph Theory)

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

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

Βασικές Δοµές Δεδοµένων. Σύντοµη επανάληψη (ΕΠΛ 035).

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

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

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

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

Γράφοι: κατευθυνόμενοι και μη

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

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

Ενδεικτικές Ερωτήσεις Θεωρίας

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Αλγόριθμοι Γραφημάτων

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

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

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

ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ

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

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

Ενότητα 5: Αλγόριθμοι γράφων και δικτύων

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

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

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

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

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

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

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

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

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

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

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

ιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Αλγόριθμοι Γραφημάτων

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

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

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ιαφάνειες παρουσίασης #11

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

u v 4 w G 2 G 1 u v w x y z 4

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

Αλγόριθμοι Ταξινόμησης Μέρος 2

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 ( και ) Ε. Μαρκάκης Επίκουρος Καθηγητής

Εισαγωγή στην Αριθμητική Ανάλυση

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

Βασικές Έννοιες Θεωρίας Γραφημάτων

3 ΟΥ και 9 ΟΥ ΚΕΦΑΛΑΙΟΥ

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

Γράφηµα (Graph) Εργαστήριο 10. Εισαγωγή

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

ΠΡΟΛΟΓΟΣ. Θεσσαλονίκη, Μάρτιος Οι συγγραφείς. Κ. Παπαρρίζος, Ν. Σαμαράς, Α. Σιφαλέρας.

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 3: Δένδρα

Κεφάλαιο 3. Γραφήµατα v1.0 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Ψευδοκώδικας. November 7, 2011

Κεφάλαιο 3. Γραφήματα. v1.3 ( ) Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

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

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

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

Γράφοι. Αλγόριθμοι και πολυπλοκότητα. Στάθης Ζάχος, Δημήτρης Φωτάκης

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

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

Βασικές Έννοιες Θεωρίας Γραφημάτων

Κεφάλαιο 3. Γραφήµατα v1.1 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

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

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

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

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

ΑΝΤΙΣΤΟΙΧΗΣΕΙΣ ΟΡΩΝ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙOΥΝΤΑΙ ΣΤΟΥΣ ΤΟΜΟΥΣ Α ΚΑΙ Β ΤΗΣ ΘΕ «ΔΙΑΚΡΙΤΑ ΜΑΘΗΜΑΤΙΚΑ» Ένα γράφημα αποτελείται από ένα σύνολο 94.

6η Διάλεξη Διάσχιση Γράφων και Δέντρων

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

Αλγόριθμοι Eλάχιστα μονοπάτια

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

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

Αλγόριθμοι Ταξινόμησης Μέρος 4

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

ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ ΚΕΦΑΛΑΙΟ 3 ΠΡΟΣΘΗΚΗ

Προβλήματα Ελάχιστου Κόστους Ροής σε Δίκτυο. Δίκτυα Ροής Ελάχιστου Κόστους (Minimum Cost Flow Networks)

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

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

Transcript:

ΓΛΩΣΣΑΡΙ Ακολουθία Fibonacci (Fibonacci sequence): Μία ακολουθία από ακεραίους αριθμούς όπου ο κάθε ακέραιος είναι το άθροισμα των δύο προηγούμενων. Οι δύο πρώτοι όροι της ακολουθίας είναι το 0 και το 1. Άκυκλο γράφημα (acyclic graph): Ένα γράφημα που δεν περιέχει προσανατολισμένους κύκλους. Αλγόριθμος (algorithm): Η διαδικασία επίλυσης ενός προβλήματος η οποία δεν περιέχει λογικές αντιφάσεις, λύνει πάντοτε κάθε πρόβλημα για το οποίο έχει αναπτυχθεί, τερματίζει σε πεπερασμένο αριθμό βημάτων και δεν περιέχει ασάφειες. Αλγόριθμος Dijkstra (Dijkstra algorithm): Αλγόριθμος ο οποίος μπορεί να υπολογίσει τις ελάχιστες διαδρομές από έναν κόμβο προς όλους τους υπόλοιπους σε δίκτυα με μη αρνητικά τόξα. Αλγόριθμος Kruskal (Kruskal algorithm): Αλγόριθμος ο οποίος μπορεί να υπολογίσει το ελάχιστο δέντρο κάλυμμα ενός γράφου. Αλγόριθμος Prim (Prim algorithm): Αλγόριθμος ο οποίος μπορεί να υπολογίσει το ελάχιστο δέντρο κάλυμμα ενός γράφου. Αλγόριθμος Strassen (Strassen algorithm): Αλγόριθμος ο οποίος υπολογίζει το γινόμενο δύο πινάκων. Αλγόριθμος ανίχνευσης γράφου (graph search algorithm): Αλγόριθμος ο οποίος ελέγχει έναν γράφο για συγκεκριμένες ιδιότητες όπως η ύπαρξη διαδρομής από έναν κόμβο-πηγή προς κάποιους άλλους κόμβους ή η ύπαρξη κύκλων στον γράφο. Αλγόριθμος προσωρινών αποστάσεων (labelling correcting algorithm): Αλγόριθμος ο οποίος μπορεί να υπολογίσει τις ελάχιστες διαδρομές από έναν κόμβο προς όλους τους άλλους σε δίκτυα με μη αρνητικούς κύκλους χρησιμοποιώντας ετικέτες που ονομάζονται προσωρινές αποστάσεις. Αλυσίδα (chain): Σε ένα γράφο G=(N,A), αλυσίδα είναι μία αλληλουχία i 1 -a 1 -i 2 -a 2 -...-i r-1 -a r-1 -i r, κόμβων i k του Ν και τόξων a k του Α, η οποία αρχίζει και τελειώνει με κόμβο έτσι ώστε για κάθε k<r, το τόξο a k =(i k, i k+1 ) ή το τόξο a k =(i k+1, i k ) ανήκει στο Α. Εάν για κάθε k<r, το τόξο a k =(i k, i k+1 ) ανήκει στο Α η αλυσίδα λέγεται προσανατολισμένη. Αναδρομικός αλγόριθμος (recursive algorithm): Ένας αλγόριθμος που κατά την εκτέλεσή του καλεί τον εαυτό του. Ανεξάρτητο σύνολο κόμβων (indepedent node set): Ένα υποσύνολο του συνόλου των κόμβων ενός γράφου για το οποίο δεν υπάρχει ζεύγος κόμβων που να συνδέονται μεταξύ τους. Ανοικτή αλυσίδα (open chain): Μία αλυσίδα στην οποία ο πρώτος κόμβος είναι διαφορετικός από τον τελευταίο. Απομονωμένος κόμβος (isolated node): Ένας κόμβος με βαθμό μηδέν. Αραιός γράφος (scarce graph): Ένας γράφος με πυκνότητα μικρότερη του 0,5. Αραιότητα γράφου (graph scarcity): Βλέπε πυκνότητα γράφου. Αριθμητικοί τελεστές (arithmetic operators): Οι τελεστές αριθμητικών πράξεων όπως +, -, *,/ κτλ. Βαθμός κόμβου (node degree): Το πλήθος των τόξων που έχουν το ένα άκρο τους στον κόμβο. Βάθος δέντρου (tree depth): Το μέγιστο βάθος των κόμβων του δέντρου. Βάθος κόμβου (node depth): Ο αριθμός που δείχνει το επίπεδο στο οποίο βρίσκεται ο κόμβος ενός

δέντρου. Βρόχος (loop): Για βρόχο σε μία γλώσσα προγραμματισμού ή ψευδοκώδικα βλέπε εντολή επανάληψης. Στη θεωρία γράφων, βρόχος είναι ένα τόξο που έχει αρχή και τέλος τον ίδιο κόμβο. Γειτονικός κόμβος (neighbor node): Ένας κόμβος i είναι γειτονικός ενός κόμβου j εάν υπάρχει τόξο (i,j) ή (j,i) που συνδέει τους δύο κόμβους. Γράφος (graph): Μία δυάδα συνόλων Ν και Α, όπου Ν είναι ένα σύνολο κόμβων και Α ένα σύνολο τόξων που συνδέουν κόμβους. Γρήγορη ταξινόμηση (quicksort): Αλγόριθμος που ταξινομεί τα δεδομένα που βρίσκονται αποθηκευμένα σε έναν πίνακα. Ο αλγόριθμος επιλέγει ένα στοιχείο a του πίνακα (διαχωριστής) και τον χωρίζει σε τρεις υποπίνακες x,y,z. Ο υποπίνακας x περιέχει τα στοιχεία του πίνακα που είναι μικρότερα του a, o y αυτά που είναι ίσα με a και ο z αυτά που είναι μεγαλύτερα του a. Στη συνέχεια ο αλγόριθμος καλεί τον εαυτό του για τους υποπίνακες x και z. Δάσος (forest): Μία συλλογή από δέντρα. Δέντρο (tree): Ένας συνεκτικός γράφος χωρίς κύκλους. Δέντρο διάσχισης (search tree): Το δέντρο που προκύπτει κατά τη διαδοχική επίσκεψη όλων των κόμβων ενός γράφου. Ανάλογα με τη σειρά επίσκεψης των κόμβων μπορούμε να έχουμε δέντρο διάσχισης κατά πλάτος (width first search tree) ή δέντρο διάσχισης κατά βάθος (depth first search tree). Δέντρο ελαχίστων δρόμων (shortest path tree): Ένα δέντρο που σχηματίζεται από τις ελάχιστες διαδρομές από έναν κόμβο-πηγή προς όλους τους υπόλοιπους. Δέντρο κλήσεων (call tree): Το δέντρο που σχηματίζεται από τις κλήσεις ενός αναδρομικού αλγορίθμου στον εαυτό του. Η ρίζα του δέντρου περιέχει την αρχική κλήση και για κάθε νέα κλήση έχουμε ένα νέο κόμβο στο επόμενο επίπεδο του δέντρου. Δεσμευμένες λέξεις (reserved words): Λέξεις που χρησιμοποιούνται σε ένα πρόγραμμα και έχουν ειδικό νόημα (π.χ. η λέξη ΑΝ στον ψευφοκώδικα ή if σε μία γλώσσα προγραμματισμού). Δεν μπορούν να υπάρχουν μεταβλητές που το όνομά τους να είναι ίδιο με κάποια δεσμευμένη λέξη. Διάνυσμα (vector): Μία μήτρα που αποτελείται από μία μόνο γραμμή ή μία μόνο στήλη. Δίκτυο (network): Ένας γράφος στον οποίο έχουν προσαρτηθεί αριθμοί (ετικέτες) στους κόμβους και/ή στα τόξα. Διμερής γράφος (bipartive graph): Ένας γράφος του οποίου το σύνολο των κόμβων Ν μπορεί να διαιρεθεί σε δύο υποσύνολα Ν 1 και Ν 2 έτσι ώστε όλα τα τόξα του γράφου να έχουν υποχρεωτικά το ένα άκρο τους στο Ν 1 και το άλλο άκρο τους στο Ν 2. Διπλανός κόμβος (adjacent node): Βλέπε γειτονικός κόμβος. Δομές δεδομένων (data structures): Τρισυπόστατα αντικείμενα που αποτελούνται (1) από τα ίδια τα δεδομένα που λέγονται κλειδιά (keys), (2) από ένα σύνολο λειτουργιών που ονομάζονται λειτουργίες (operations) και (3) ένα σύνολο μεταβλητών, διανυσμάτων ή μητρών όπου αποθηκεύονται τα δεδομένα. Δομή επανάληψης (iteration structure): Βλέπε εντολή επανάληψης. Δομή επιλογής (selection structure): Βλέπε εντολή επιλογής. Δρόμος (path): Μία ανοικτή αλυσίδα στην οποία κάθε κόμβος (και επομένως κάθε τόξο) εμφανίζεται ακριβώς μία φορά. Κατά την πορεία από τον πρώτο κόμβο του δρόμου προς τον

τελευταίο, υπάρχουν τόξα (i,j) για τα οποία συναντούμε πρώτα τον κόμβο i και μετά τον j, τα οποία ονομάζονται προς τα εμπρός τόξα (forward). Τα υπόλοιπα ονομάζονται προς τα πίσω τόξα (backward). Δυαδική αναζήτηση (binary search): Αλγόριθμος αναζήτησης ενός αριθμού a ανάμεσα σε ένα πίνακα ταξινομημένων αριθμών. Ο αλγόριθμος παίρνει το μεσαίο στοιχείο m του πίνακα και το συγκρίνει με τον a. Εάν είναι ίσα, τότε ο ζητούμενος αριθμός έχει βρεθεί. Εάν a<m, τότε η διαδικασία επαναλαμβάνεται στον αριστερό υποπίνακα, αλλιώς στον δεξιό υποπίνακα. Δυαδικό δέντρο (binary tree): Ένα δέντρο του οποίου ο κάθε κόμβος έχει το πολύ δύο παιδιά. Δυαδικό δέντρο αναζήτησης (binary search tree): Ένα δυαδικό δέντρο για το οποίο το κλειδί του κάθε κόμβου είναι μεγαλύτερο από όλα τα κλειδιά του αριστερού υποδέντρου του και μικρότερο από όλα τα κλειδιά του δεξιού υποδέντρου του. Ελάχιστο δέντρο κάλυμμα (minimum spanning tree): Ένα δέντρο που περιέχει όλους τους κόμβους ενός μη προσανατολισμένου γράφου και οι ακμές του έχουν το ελάχιστο συνολικό βάρος (κόστος). Ενδοδιάταξη (inorder): Τρόπος διαπέρασης των κόμβων ενός δέντρου κατά τον οποίο προηγείται το αριστερό παιδί, μετά η ρίζα και μετά το δεξί παιδί. Εντολή επανάληψης (iteration statement): Μία δομή επιτρέπει την εκτέλεση ενός συνόλου εντολών για περισσότερες από μία φορές ανάλογα με την ικανοποίηση μίας λογικής συνθήκης. Χαρακτηριστικές εντολές επανάληψης είναι η εντολή for (για...από...μέχρι), η εντολή while (όσο) και η εντολή do...while ή repeat...until (επανέλαβε...μέχρι). Εντολή επιλογής (selection statement): Εντολή με την οποία μπορούμε να επιλέξουμε την εκτέλεση μίας ομάδας εντολών από ένα σύνολο διαφορετικών επιλογών ανάλογα με την ικανοποίηση μίας λογικής συνθήκης. Χαρακτηριστικές εντολές επιλογής είναι η εντολή if... then...else και η εντολή case (ή switch). Εντολή καταχώρησης (assignment statement): Εντολή μίας γλώσσας προγραμματισμού ή ψευδοκώδικα με την οποία μπορούμε να αναθέσουμε τιμή σε μία μεταβλητή. Ανάλογα με τη γλώσσα προγραμματισμού χρησιμοποιείται διαφορετικό σύμβολο όπως = ή := ή ακόμη και βελάκι (στον ψευδοκώδικα). Έξω βαθμός κόμβου (node in degree): Το πλήθος των τόξων που έχουν την αρχή τους στον κόμβο. Έξω γειτονιά (out neighborhood): Το σύνολο των έξω γειτονικών κόμβων ενός κόμβου i. Έξω γειτονικός κόμβος (out neighbor node): Ένας κόμβος j είναι έξω γειτονικός ενός κόμβου i εάν υπάρχει τόξο (i,j) που συνδέει τους δύο κόμβους. Έξω δέντρο διάσχισης (out search tree): Ένα δέντρο διάσχισης ενός γράφου στο οποίο όλα τα τόξα δείχνουν σε κατεύθυνση αντίθετη της ρίζας. Επαναληπτικός αλγόριθμος (repetitive algorithm): Ένας αλγόριθμος ο οποίος χρησιμοποιεί δομές επανάληψης χωρίς να καλεί τον εαυτό του όπως κάνουν οι αναδρομικοί αλγόριθμοι. Έσω βαθμός κόμβου (node out degree): Το πλήθος των τόξων που έχουν το τέλος τους στον κόμβο. Έσω γειτονιά (in neighborhood): Το σύνολο των έσω γειτονικών κόμβων ενός κόμβου i. Έσω γειτονικός κόμβος (in neighbor node): Ένας κόμβος i είναι έσω γειτονικός ενός κόμβου j εάν υπάρχει τόξο (i,j) που συνδέει τους δύο κόμβους. Έσω δέντρο διάσχισης (in search tree): Ένα δέντρο διάσχισης ενός γράφου στο οποίο όλα τα τόξα

δείχνουν προς τη ρίζα. Ισχυρά πλήρες δέντρο (strongly complete tree): Ένα πλήρες δέντρο στο οποίο το τελευταίο επίπεδο έχει όλα τα φύλλα συγκεντρωμένα στα αριστερά. Ισχυρά συνεκτικός γράφος (strongly connected graph): Ένας γράφος για τον οποίο για κάθε ζεύγος κόμβων (i,j) υπάρχει ένας τουλάχιστον προσανατολισμένος δρόμος από τον i στον j και ένας τουλάχιστον προσανατολισμένος δρόμος από τον j στον i. Κλειστή αλυσίδα (closed chain): Μία αλυσίδα στην οποία ο πρώτος κόμβος είναι ίδιος με τον τελευταίο. Κλειστός δρόμος (closed path): Ένας δρόμος στον οποίο ο πρώτος κόμβος είναι ίδιος με τον τελευταίο. Κύκλος (cycle): Βλέπε κλειστός δρόμος. Κύκλωμα (circuit): Ένας προσανατολισμένος κύκλος. Λογική έκφραση (logical expression): Βλέπε λογική συνθήκη. Λογική συνθήκη (logical condition): Μία έκφραση που περιλαμβάνει τελεστές σύγκρισης και λογικούς τελεστές. Παίρνει την τιμή αληθής ή ψευδής και χρησιμοποιείται συνήθως στις εντολές επιλογής και επανάληψης. Υπάρχουν οι απλές λογικές συνθήκες που περιλαμβάνουν μόνο έναν τελεστή σύγκρισης (π.χ. x<2) και οι σύνθετες λογικές συνθήκες που περιλαμβάνουν έναν ή περισσότερους λογικούς τελεστές (π.χ. x>0 KAI y<10). Λογικοί τελεστές (logical operators): Οι τελεστές σύζευξης (ΚΑΙ ή AND), διάζευξης (Ή ή OR) και άρνησης (ΟΧΙ ή ΝΟΤ). Μέγιστο ανεξάρτητο σύνολο (maximal indepedent set): Το ανεξάρτητο σύνολο κόμβων ενός γράφου που περιέχει το μέγιστο πλήθος κόμβων. Μεταδιάταξη (postorder): Τρόπος διαπέρασης των κόμβων ενός δέντρου κατά τον οποίο προηγείται το αριστερό παιδί, μετά το δεξί παιδί και ακολουθεί η ρίζα. Μη προσανατολισμένος γράφος (not directed graph): Ένας γράφος του οποίου τα τόξα δεν θεωρούνται διατεταγμένα ζεύγη, δηλ. το τόξο (i,j) θεωρείται ίδιο με το τόξο (j,i). Μήτρα (matrix): Ένα σύνολο αριθμών, οι οποίοι γράφονται έτσι ώστε να σχηματίζουν γραμμές και στήλες. Μήτρα γειτονιάς (adjacency matrix): Μήτρα που μπορεί να χρησιμοποιηθεί για την αποθήκευση ενός γράφου. Για κάθε κόμβο του γράφου υπάρχει μία γραμμή και μία στήλη. Εάν υπάρχει ακμή (i,j) στο γράφο τότε στην αντίστοιχη θέση της μήτρας έχουμε το 1, αλλιώς έχουμε 0. Μήτρα πρόσπτωσης κόμβων-τόξων (node-arc incidence matrix): Μία μήτρα που χρησιμοποιείται για την αποθήκευση ενός προσανατολισμένου γράφου. Για κάθε κόμβο του γράφου η μήτρα περιέχει μία γραμμή και για κάθε τόξο του γράφου περιέχει μία στήλη. Για κάθε τόξο (i,j) έχουμε 1 στη γραμμή του κόμβου i και -1 στη γραμμή του κόμβου j. Στις υπόλοιπες θέσεις η μήτρα περιέχει το 0. Οροφή (ceiling): Συνάρτηση που δίνει το μικρότερο ακέραιο αριθμό που είναι μεγαλύτερος ή ίσος ενός πραγματικού αριθμού x. Ουρά (queue): Απλή δομή δεδομένων που περιέχει ένα σύνολο δεδομένων όπου ο αριθμός που εισάγεται πρώτος είναι αυτός που εξάγεται πρώτος (προτεραιότητα FIFO - First In First Out). Παράλληλα τόξα (parallel arcs): Δύο ή περισσότερα τόξα ενός γράφου που έχουν την ίδια αρχή και

τέλος. Πάτωμα (floor): Συνάρτηση που δίνει το μεγαλύτερο ακέραιο αριθμό που είναι μικρότερος ή ίσος ενός πραγματικού αριθμού x. Πιθανοτικός αλγόριθμος (probabilistic algorithm): Βλέπε στοχαστικός αλγόριθμος. Πλήρες δέντρο (complete tree): Ένα δέντρο στο οποίο όλα τα επίπεδα, εκτός ίσως του τελευταίου, έχουν το μέγιστο πλήθος κόμβων. Πρόβλημα χρωματισμού γράφων (graph coloring problem): Το πρόβλημα χρωματισμού των κόμβων ενός γράφου με τέτοιο τρόπο ώστε να μην υπάρχουν γειτονικοί κόμβοι που να έχουν το ίδιο χρώμα. Προδιάταξη (preorder): Τρόπος διαπέρασης των κόμβων ενός δέντρου κατά τον οποίο προηγείται η ρίζα, μετά το αριστερό παιδί και μετά το δεξί παιδί. Προς τα εμπρός τόξα (forward arcs): Βλέπε δρόμος. Προς τα πίσω τόξα (backward arcs): Βλέπε δρόμος. Προσανατολισμένη αλυσίδα (directed chain): Βλέπε αλυσίσα. Προσανατολισμένος γράφος (directed graph): Ένας γράφος του οποίου τα τόξα θεωρούνται διατεταγμένα ζεύγη, δηλ. το τόξο (i,j) θεωρείται διαφορετικό από το τόξο (j,i). Προσανατολισμένος δρόμος (directed path): Ένας δρόμος του οποίου όλα τα τόξα είναι προς τα εμπρός ή όλα τα τόξα είναι προς τα πίσω. Προσανατολισμένος κύκλος (directed cycle): Ένας κύκλος που αντιστοιχεί σε δρόμο που είναι προσανατολισμένος. Προσδιοριστικός αλγόριθμος (deterministic algorithm): Ένας αλγόριθμος που δεν περιέχει στοχαστικές εκφράσεις και επομένως όταν εφαρμοστεί στα ίδια δεδομένα, δίνει πάντοτε τα ίδια αποτελέσματα. Προτεραιότητα Πρώτος Μέσα Πρώτος Έξω (First In First Out - FIFO): Προτεραιότητα κατά την οποία το αντικείμενο που εισάγεται πρώτο σε ένα σύνολο αντικειμένων, είναι αυτό που εξάγεται πρώτο από το σύνολο. Προτεραιότητα Τελευταίος Μέσα Πρώτος Έξω (Last In First Out - LIFO): Προτεραιότητα κατά την οποία το αντικείμενο που εισάγεται τελευταίο σε ένα σύνολο αντικειμένων, είναι αυτό που εξάγεται πρώτο από το σύνολο. Πυκνός γράφος (dense graph): Ένας γράφος με πυκνότητα μεγαλύτερη του 0,5. Πυκνότητα γράφου (graph density): Ο αριθμός d=k/(n(n-1)) όπου n το πλήθος των κόμβων και k το πλήθος των τόξων ενός προσανατολισμένου γράφου. Η πυκνότητα γράφου παίρνει τιμές μεταξύ 0 και 1. Ρίζα (root): Ένας διακεκριμένος κόμβος ενός δέντρου που θεωρούμε ότι βρίσκεται στο επίπεδο 0, ενώ οι υπόλοιποι κόμβοι θεωρούμε ότι βρίσκονται σε επίπεδα που αριθμούνται 1,2,3 κτλ. Ριζωμένο δέντρο (rooted tree): Ένα δέντρο στο οποία υπάρχει ένας κόμβος που θεωρείται ρίζα του δέντρου. Ρωσικός πολλαπλασιασμός (russian multiplication): Μέθοδος που για να υπολογιστεί το γινόμενο δύο αριθμών. Αντί για πολλαπλασιασμό χρησιμοποιεί πρόσθεση, διπλασιασμό και υποδιπλασιασμό των αριθμών.

Σειριακή αναζήτηση (linear search): Αλγόριθμος αναζήτησης ενός αριθμού a ανάμεσα σε ένα σύνολο αριθμών. Ο αλγόριθμος ελέγχει ένα-ένα τους αριθμούς μέχρι να βρει αυτόν που ψάχνει. Στατιστικές κλίμακας (order statistics): Ο υπολογισμός στοιχείων όπως το k μικρότερο μικρότερο στοιχείο ενός διανύσματος n στοιχείων. Στοίβα (stack): Απλή δομή δεδομένων που περιέχει ένα σύνολο δεδομένων όπου ο αριθμός που εισάγεται τελευταίος είναι αυτός που εξάγεται πρώτος ( προτεραιότητα LIFO - Last In First Out). Στοχαστική έκφραση (stochastic expression): Μία έκφραση που μπορεί να δώσει κάθε φορά διαφορετικό αποτέλεσμα. Το κάθε δυνατό αποτέλεσμα έχει τη δική του πιθανότητα. Στοχαστικός αλγόριθμος (stochastic algorithm): Ένας αλγόριθμος που περιέχει στοχαστικές εκφράσεις. Συνδεμένη λίστα (linked list): Ένα σύνολο κόμβων όπου ο κάθε κόμβος περιέχει δεδομένα και έναν δείκτη προς τον επόμενο κόμβο (απλά συνδεμένη λίστα). Εάν ο κάθε κόμβος περιέχει δείκτη και προς τον προηγούμενο κόμβο τότε έχουμε διπλά συνδεμένη λίστα. Στις συνδεμένες λίστες θα πρέπει να υπάρχει και ένας δείκτης που δείχνει στο πρώτο στοιχείο της λίστας και πιθανόν και ένας δείκτης προς τον τελευταίο κόμβο (για τις διπλά συνδεμένες λίστες). Εισαγωγή και εξαγωγή δεδομένων μπορεί να γίνει είτε στην αρχή της λίστας, είτε στο τέλος ή ακόμη κι ενδιάμεσα. Συνδεμένοι κόμβοι (connected nodes): Δύο κόμβοι για τους οποίους υπάρχει τουλάχιστον ένας δρόμος (όχι απαραίτητα προσανατολισμένος) από τον ένα στον άλλο. Συνεκτικός γράφος (connected graph): Ένας γράφος για τον οποίο κάθε ζευγάρι κόμβων είναι συνδεδεμένο. Συνιστώσες γράφου (graph components): Οι μέγιστοι συνεκτικοί υπογράφοι ενός μη συνεκτικού γράφου. Σχεσιακοί τελεστές (relational operators): Οι τελεστές σύγκρισης όπως =, >, < κτλ. Σχήμα horner (horner scheme): Μέθοδος υπολογισμού της τιμής ενός πολυωνύμου. Σωρός (heap): Ένα σύνολο αποθηκευμένων αριθμών όπου ο αριθμός που βρίσκεται αποθηκευμένος στη θέση i είναι μεγαλύτερος ή ίσος των αριθμών που βρίσκονται στις θέσεις 2*i και 2*i+1. Σωρός Fibonacci (Fibonacci heap): Ένα σύνολο ριζωμένων δέντρων όπου το καθένα έχει την ιδιότητα του σωρού, δηλ. το κλειδί του κάθε κόμβου είναι μεγαλύτερο ή ίσο από όλα τα κλειδιά των παιδιών του. Οι σωροί Fibonacci επιτυγχάνουν καλύτερους χρόνους σε πολλές πράξεις σωρών σε σχέση με τους κλασικούς σωρούς. Ταξινόμηση radix (radixsort): Αλγόριθμος ταξινόμησης ο οποίος ταξινομήσει αριθμούς με n ψηφία ο καθένας (μπορούμε να προσθέσουμε μηδενικά στα αριστερά έτσι ώστε όλοι οι αριθμοί να έχουν n ψηφία). Ο αλγόριθμος ταξινομεί πρώτα τους αριθμούς ως προς το τελευταίο ψηφίο τους, μετά ως προς το προτελευταίο κ.ο.κ. Ταξινόμηση με διαχωρισμό (splitsort) Βλέπε γρήγορη ταξινόμηση. Ταξινόμηση με εισαγωγγή (insertsort): Αλγόριθμος ταξινόμησης δεδομένων. Στην i επανάληψη έχει ταξινομημένα τα i-1 στοιχεία και τοποθετεί το i-στο στοιχείο στη σωστή θέση έτσι ώστε να έχουμε ταξινομημένα συνολικά τα i στοιχεία. Ταξινόμηση με εναλλαγή (bubblesort): Αλγόριθμος ταξινόμησης δεδομένων. Διατρέχει τα δεδομένα και όταν βρει ένα ζευγάρι αριθμών που βρίσκονται σε λάθος σειρά τα εναλλάσσει. Η πιο πάνω διαδικασία έχει σαν αποτέλεσμα ο μεγαλύτερος αριθμός να τοποθετηθεί στην τελευταία

θέση. Στην επόμενη επανάληψη ο αμέσως μεγαλύτερος τοποθετείται στην προτελευταία θέση κ.ο.κ. Ταξινόμηση με επιλογή (selectsort): Αλγόριθμος ταξινόμησης δεδομένων. Επιλέγει το μικρότερο στοιχείο και το τοποθετεί στην πρώτη θέση. Στη συνέχεια επιλέγει το μικρότερο από τα εναπομείναντα στοιχεία και το τοποθετεί στη δεύτερη θέση κ.ο.κ. Ταξινόμηση με μέτρηση (countsort): Αλγόριθμος ταξινόμησης που είναι αποτελεσματικός όταν έχουμε n αριθμούς οι οποίοι όμως δεν είναι όλοι διαφορετικοί μεταξύ τους αλλά αντιστοιχούν σε m διαφορετικές τιμές (όπου m<n). Ταξινόμηση με μπουκέτα (bucketsort): Αλγόριθμος ταξινόμησης που είναι αποδοτικός όταν εφαρμόζεται σε αριθμούς οι οποίοι είναι ομοιόμορφα ταξινομημένοι στο διάστημα [0,1). Ο αλγόριθμος χωρίζει το διάστημα [0,1) σε n ίσα διαστήματα που ονομάζονται μπουκέτα και τοποθετεί τους αριθμούς στα μπουκέτα αυτά. Ταξινόμηση με συνένωση (mergesort): Αλγόριθμος που ταξινομεί τα δεδομένα που βρίσκονται αποθηκευμένα σε έναν πίνακα. Ο αλγόριθμος χωρίζει τον πίνακα σε δύο υποπίνακες ίσου μεγέθους και στη συνέχεια καλεί τον εαυτό του σε κάθε έναν από αυτούς τους υποπίνακες. Ταξινόμηση με σωρούς (heapsort): Αλγόριθμος ταξινόμησης κατά τον οποίο τα δεδομένα είναι αποθηκευμένα σε σωρό. Σε κάθε βήμα παίρνουμε το πρώτο στοιχείο του σωρού και στην συνέχεια επαναδιατάσσουμε τα υπόλοιπα στοιχεία έτσι ώστε να αποτελούν και πάλι σωρό. Ταξινόμηση φυσαλίδας (bubblesort): Βλέπε ταξινόμηση με εναλλαγή. Τελεστές (operators): Σύμβολα ή λέξεις που χρησιμοποιούνται στις αριθμητικές και λογικές εκφράσεις. Διακρίνονται σε αριθμητικούς, σχεσιακούς (ή τελεστές σύγκρισης) και λογικούς τελεστές. Τελεστές σύγκρισης (comparison oparators): Σύμβολα όπως =, >, < που χρησιμοποιούνται για τη σύγκριση δύο ποσοτήτων που μπορεί να είναι σταθερές ή μεταβλητές ή σύνθετες εκφράσεις. Τομή (cut) γράφου: Ένας διαμερισμός του συνόλου των κόμων Ν σε 2 υποσύνολα S και S'. Συμβολίζεται με [S,S']. Τομή λέγεται επίσης το σύνολο των τόξων που έχουν το ένα άκρο τους στο S και το άλλο στο S'. Υπεργράφος (hypergraph): Ένας γράφος που περιέχει παράλληλα τόξα ή βρόχους. Υπογράφος (subgraph): Ένας γράφος που προκύπτει όταν από έναν άλλο γράφο αφαιρέσουμε έναν ή περισσότερους κόμβους και/ή ένα ή περισσότερα τόξα. Ύψος δέντρου (tree height): Ο αριθμός h που δίνει το βάθος του δέντρου. Ύψος κόμβου (node height): Η διαφορά h-i, όπου i είναι το βάθος του κόμβου και h το βάθος του δέντρου. Φύλλο (leaf): Ένας κόμβος με βαθμό 1. Φωλιασμένος βρόχος (nested loop): Ένας βρόχος που βρίσκεται μέσα σε έναν άλλον βρόχο.