Προηγµένες Υπηρεσίες Τηλεκπαίδευσης στο ΤΕΙ Σερρών
|
|
- Τυρώ Παπάγος
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Προηγµένες Υπηρεσίες Τηλεκπαίδευσης στο ΤΕΙ Σερρών Το εκπαιδευτικό υλικό που ακολουθεί αναπτύχθηκε στα πλαίσια του έργου «Προηγµένες Υπηρεσίες Τηλεκπαίδευσης στο Τ.Ε.Ι. Σερρών», του Μέτρου «Εισαγωγή και Αξιοποίηση των νέων Τεχνολογιών στην Εκπαίδευση» του Επιχειρησιακού Προγράµµατος Κοινωνία της Πληροφορίας
2 Αλγόριθµοι και οµές εδοµένων Το εκπαιδευτικό υλικό βασίζεται στο εγκεκριµένο από το Τµήµα Πληροφορικής και Επικοινωνιών περίγραµµα τουµαθήµατος Αλγόριθµοι και οµές εδοµένων Συντάκτης: Ευάγγελος Γ. Ούτσιος
3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ Αλγόριθµος είναι µια πεπερασµένη σειρά ενεργειών, αυστηρά καθορισµένων και εκτελέσιµων σε πεπερασµένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήµατος. Κάθε αλγόριθµος απαραίτητα ικανοποιεί τα επόµενα κριτήρια: Είσοδος (input). Έξοδος (output). Καθοριστικότητα (definiteness). Περατότητα (finiteness). Αποτελεσµατικότητα (effectiveness).
4 Περιγραφή και αναπαράσταση αλγορίθµων Ελεύθερο κείµενο. Φυσική γλώσσα κατά βήµατα. ιάγραµµα ροής. Ψευδοκώδικας.
5 ΒΑΣΙΚΕΣ ΑΛΓΟΡΙΘΜΙΚΕΣ ΟΜΕΣ οµή Ακολουθίας οµή Eπιλογής οµή Επανάληψης
6 οµή επιλογής Απλή επιλογή ΑΝ συνθήκη ΤΟΤΕ Εντολές ΤΕΛΟΣ ΑΝ if (expression) Statements; Σύνθετη επιλογή ΑΝ συνθήκη ΤΟΤΕ if (expression) Εντολές 1 Statements 1; ΑΛΛΙΩΣ else Εντολές 2 Statements 2; ΤΕΛΟΣ ΑΝ
7 οµή επιλογής Eµφωλευµένη επιλογή ΑΝ συνθήκη 1 ΤΟΤΕ if (expression 1) ΑΝ συνθήκη 2 ΤΟΤΕ if (expression 2) Εντολές 1 Statements 1; ΑΛΛΙΩΣ else Εντολές 2 Statements 2; ΤΕΛΟΣ ΑΝ else ΑΛΛΙΩΣ if (expression 3) ΑΝ συνθήκη 3 ΤΟΤΕ Statements 3; Εντολές 3 else ΑΛΛΙΩΣ Statements 4; Εντολές 4 ΤΕΛΟΣ ΑΝ ΤΕΛΟΣ ΑΝ
8 οµή Επανάληψης Επαναληπτικό σχήµα µε έλεγχο επανάληψης στην αρχή ΟΣΟ συνθήκη ΕΠΑΝΕΛΑΒΕ while (expression) Εντολές Statements; ΤΕΛΟΣ ΕΠΑΝΑΛΗΨΗΣ Επαναληπτικό σχήµα µε έλεγχο επανάληψης στο τέλος ΑΡΧΗ ΕΠΑΝΑΛΗΨΗΣ do Εντολές Statements; ΜΕΧΡΙΣ ΟΤΟΥ συνθήκη while (expression);
9 οµή Επανάληψης Επαναληπτικό σχήµα ορισµένων φορών επανάληψης ΓΙΑ µεταβλητή ΑΠΟ αρχική τιµή ΜΕΧΡΙ τελική τιµή Εντολές ΤΕΛΟΣ ΕΠΑΝΑΛΗΨΗΣ for (variable = initial value; variable<= final value; step) Statements;
10 ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Η καταγραφή των µεγεθών που επηρεάζουν την επίδοση ενός αλγορίθµου είναι µια σηµαντική ενέργεια για την κατανόηση της αποδοτικότητας ενός αλγορίθµου. Για το λόγο αυτό, είναι απαραίτητο να βρεθεί η βασική λειτουργία και η δοµή του αλγορίθµου όπου κυρίως δαπανώνται οι υπολογιστικοί πόροι. Επίδοση αλγορίθµων Ορθότητα αλγορίθµων Πολυπλοκότητα αλγορίθµων
11 οµές εδοµένων Αλγόριθµοι + οµές εδοµένων = Προγράµµατα Ορισµός οµή εδοµένων είναι ένα σύνολο αποθηκευµένων δεδοµένων που υφίστανται επεξεργασία από ένα σύνολο λειτουργιών.
12 οµές εδοµένων Βασικές λειτουργίες επί των δοµών δεδοµένων: Προσπέλαση (access) Εισαγωγή (insertion) ιαγραφή (deletion) Αναζήτηση (searching) Ταξινόµηση (sorting) Αντιγραφή (copying) Συγχώνευση (merging) ιαχωρισµός (separation)
13 ΑΝΑ ΡΟΜΗ Αναδροµή είναιηµέθοδος κατά την οποία, σε µία γλώσσα προγραµµατισµού, µία διαδικασία ή συνάρτηση έχει την δυνατότητα να καλεί τον εαυτό της. Η υλοποίηση της αναδροµής βασίζεται στην έννοια της στοίβας. Η χρήση της αναδροµής διευκολύνει πολύ τον προγραµµατιστή στην ανάπτυξη και τον έλεγχο ενός προγράµµατος.
14 ΑΝΑ ΡΟΜΗ Παράδειγµα: ΥΠΟΛΟΓΙΣΜΟΣ ΠΑΡΑΓΟΝΤΙΚΟΥ Επαναληπτικός ορισµός: n! = 1*2*3*..(n-1)*n Συνάρτηση µε επανάληψη: int factorial(int n) int i,f; f = 1; for (i=2; i<=n; i++) f = f*i; return f;
15 ΑΝΑ ΡΟΜΗ Αναδροµικός ορισµός: n! = 1 αν n= 0, = n*(n-1)! αν n> 0 Συνάρτηση µε αναδροµή: int factorial(int n) int f; if (n = = 0) f = 1; else f = n*factorial(n-1); return f;
16 ΑΝΑΖΗΤΗΣΗ Αναζήτηση (searching) είναι η διεργασία της εύρεσης κάποιας συγκεκριµένης τιµής ανάµεσα από ένα σύνολο τιµών. Το πρόβληµα της αναζήτησης είναι ένα από τα πιο ενδιαφέροντα προβλήµατα της Επιστήµης των Υπολογιστών λόγω της µεγάλης πρακτικότητάς του.
17 ΑΝΑΖΗΤΗΣΗ ΣΕΙΡΙΑΚΗ ΑΝΑΖΗΤΗΣΗ Ηπιοαπλήµέθοδος αναζήτησης ενός στοιχείου σε µία δοµή δεδοµένων είναι η σειριακή αναζήτηση. Γίνεται προσπέλαση των στοιχείων της δοµής από το πρώτο µέχρι το τελευταίο. Κάθε φορά ελέγχεται το στοιχείο της τρέχουσας θέσης αν είναι το ζητούµενο, οπότε και τελειώνει η αναζήτηση. Αν προσπελασθεί όλη η δοµή καιδενβρεθείτο ζητούµενο στοιχείο, τότε η αναζήτηση θεωρείται ανεπιτυχής.
18 ΑΝΑΖΗΤΗΣΗ 1) Επαναληπτική έκδοση Αλγόριθµος Σειριακή_αναζήτηση_1 εδοµένα p[n], i, key, found, position found = false position = -1 i = 0 ΟΣΟ (found = = false ) ΚΑΙ (i < N) AN p[i] = = key TOTE found = true position = i ΑΛΛΙΩΣ i = i+1 ΤΕΛΟΣ ΑΝ ΤΕΛΟΣ ΕΠΑΝΑΛΗΨΗΣ AN found = = true ΤΟΤΕ ΕΜΦΑΝΙΣΕ position ΑΛΛΙΩΣ ΕΜΦΑΝΙΣΕ εν υπάρχει ΤΕΛΟΣ Σειριακή_αναζήτηση_1
19 ΑΝΑΖΗΤΗΣΗ 2) Αναδροµική έκδοση Αλγόριθµος Σειριακή_αναζήτηση_2 εδοµένα p[n], i, key, found, position ΑΝ i> N ΤΟΤΕ found = false ΑΛΛΙΩΣ ΑN p[i] = = key TOTE found = true position = i ΑΛΛΙΩΣ i = i+1 Σειριακή_αναζήτηση_2(p,key,found,position) ΤΕΛΟΣ ΑΝ ΤΕΛΟΣ ΑΝ ΤΕΛΟΣ Σειριακή_αναζήτηση_2 AN found = = true ΤΟΤΕ ΕΜΦΑΝΙΣΕ position ΑΛΛΙΩΣ ΕΜΦΑΝΙΣΕ εν υπάρχει ΤΕΛΟΣ ΑΝ
20 ΑΝΑΖΗΤΗΣΗ ΥΑ ΙΚΗ ΑΝΑΖΗΤΗΣΗ Όταν τα στοιχεία του πίνακα είναι ταξινοµηµένα, τότε είναι δυνατόν να επιταχυνθεί η διαδικασία αναζήτησης, εφαρµόζοντας τη δυαδική αναζήτηση. Πιο συγκεκριµένα, συγκρίνεται η τιµή του ζητούµενου στοιχείου µε τοµεσαίο στοιχείο του πίνακα. Αν είναι ίσα, τότε η αναζήτηση έχει τελειώσει. Αν όχι, τότε µπορεί ο µισός πίνακας να εξαιρεθεί από τις επόµενες αναζητήσεις γιατί αποκλείεται να περιέχει το ζητούµενο στοιχείο, εφόσον αυτός είναι ταξινοµηµένος. Η διαδικασία αυτή επαναλαµβάνεται µέχρις ότου βρεθεί το στοιχείο ή διαπιστωθεί ότι δεν υπάρχει.
21 ΑΝΑΖΗΤΗΣΗ 1) Επαναληπτική έκδοση Αλγόριθµος υαδική_αναζήτηση_1 εδοµένα p[n], mid, left, right, key, found, position found = false position = -1 left = 0 right = N-1 ΟΣΟ (found = = false ) ΚΑΙ (left <= right) mid = (left+right) / 2 AN key = = p[mid] TOTE found = true position = mid ΑΛΛΙΩΣ AN key < p[mid] TOTE right = mid-1 AΛΛΙΩΣ left = mid+1 ΤΕΛΟΣ ΑΝ ΤΕΛΟΣ ΑΝ ΤΕΛΟΣ ΕΠΑΝΑΛΗΨΗΣ AN found = = true ΤΟΤΕ ΕΜΦΑΝΙΣΕ position ΑΛΛΙΩΣ ΕΜΦΑΝΙΣΕ εν υπάρχει ΤΕΛΟΣ ΑΝ ΤΕΛΟΣ υαδική_αναζήτηση_1
22 ΑΝΑΖΗΤΗΣΗ 2) Αναδροµική έκδοση Αλγόριθµος υαδική_αναζήτηση_2 εδοµένα p[n], mid, left, right, key, position ΑΝ left > right ΤΟΤΕ position = -1 ΑΛΛΙΩΣ mid = (left + right) / 2 ΑN p[mid] = = key TOTE position = mid ΑΛΛΙΩΣ AN key < p[mid] position = υαδική_αναζήτηση_2(left, mid-1, p, key) ΑΛΛΙΩΣ position = υαδική_αναζήτηση_2(mid+1, right, p, key) ΤΕΛΟΣ ΑΝ ΤΕΛΟΣ ΑΝ ΤΕΛΟΣ ΑΝ ΤΕΛΟΣ υαδική_αναζήτηση_2 AN position = = -1 ΤΟΤΕ ΕΜΦΑΝΙΣΕ εν υπάρχει ΑΛΛΙΩΣ ΕΜΦΑΝΙΣΕ position ΤΕΛΟΣ ΑΝ
23 ΤΑΞΙΝΟΜΗΣΗ Ταξινόµηση είναι η διαδικασία της τοποθέτησης ενός συνόλου στοιχείων σε µία ιδιαίτερη σειρά. Ησειράαυτήείναισυνήθωςαύξουσα(ascending) ή φθίνουσα (descending). Σκοπός της ταξινόµησης είναι η διευκόλυνση της αναζήτησης στοιχείων του ταξινοµηµένου συνόλου.
24 ΤΑΞΙΝΟΜΗΣΗ ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΑΠΕΥΘΕΙΑΣ ΕΠΙΛΟΓΗ (Straight Selection) Η µέθοδος έχει ως εξής: Επιλέγουµε τοµικρότερο στοιχείο Το ανταλλάσσουµε µε τοπρώτοστοιχείο Επαναλαµβάνουµε για τα υπόλοιπα στοιχεία, µέχρι να µείνει ένα Π.χ
25 Ο αλγόριθµος σε C: for (i=0; i<n-1; i++) k = i; min = p[i]; for (j = i+1; j<n; j++) if (p[j] < min) k = j; min = p[j]; p[k] = p[i] ; p[i] = min; ΤΑΞΙΝΟΜΗΣΗ
26 ΤΑΞΙΝΟΜΗΣΗ ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΑΠΕΥΘΕΙΑΣ ΕΙΣΑΓΩΓΗ (Straight Insertion) Η µέθοδος είναι πολύ δηµοφιλής στους χαρτοπαίχτες και έχει ως εξής: Κάθε στοιχείο, ξεκινώντας από το δεύτερο, τοποθετείται στη σωστή του θέση µετακινώντας, αν χρειαστεί, τα στοιχεία δεξιά του κατά µία θέση. Π.χ
27 Ο αλγόριθµος σε C: for (i=2; i<=n; i++) x = p[i]; p[0] = x; j = i-1; while (x < p[j]) p[j+1] = p[j] ; j = j-1 ; p[j+1] = x ; ΤΑΞΙΝΟΜΗΣΗ
28 ΤΑΞΙΝΟΜΗΣΗ ΤΑΞΙΝΟΜΗΣΗ ΦΥΣΑΛΙ ΑΣ (Bubble Sort) Ο αλγόριθµος βασίζεται στην αρχή της σύγκρισης και ανταλλαγής ζευγών από γειτονικά στοιχεία, µέχρις ότου ταξινοµηθούν όλα τα στοιχεία. Κάθε φορά µετακινείται το µικρότερο στοιχείο της ακολουθίας προς το αριστερό άκρο. Π.χ
29 Οαλγόριθµος σε C: for (i=1; i<n; i++) for (j=n-1; j>=i; j--) if (p[j-1] > p[j]) temp = p[j-1]; p[j-1] = p[j] ; p[j] = temp ; ΤΑΞΙΝΟΜΗΣΗ
30 ΤΑΞΙΝΟΜΗΣΗ ΓΡΗΓΟΡΗ ΤΑΞΙΝΟΜΗΣΗ (Quick Sort) Ο αλγόριθµος βασίζεται στην αρχή της αντιµετάθεσης και είναι η καλύτερη γνωστή µέθοδος ταξινόµησης για τυχαία στοιχεία. Η γρήγορη ταξινόµηση στηρίζεται στην παρατήρηση ότι είναι προτιµότερο οι αντιµεταθέσεις να γίνονται µεταξύ αποµακρυσµένων στοιχείων. Στην αρχή λαµβάνεται το µεσαίο στοιχείο του πίνακα και µετακινείται στη θέση όπου τελικά θα αποθηκευτεί στο ταξινοµηµένο διάνυσµα. Μετά τον προσδιορισµό της τελικής αυτής θέσης, γίνεται αναδιάταξη των υπόλοιπων στοιχείων έτσι ώστε να µην υπάρχει κανένα µικρότερο στοιχείο προς τα αριστερά του και κανένα µεγαλύτερο στοιχείο προς τα δεξιά του.
31 ΤΑΞΙΝΟΜΗΣΗ Έτσι, το µεσαίοαυτόστοιχείοπαίζειτορόλοτουάξονα(pivot) και ο πίνακας έχει διαµεριστεί κατά τέτοιο τρόπο ώστε το αρχικό πρόβληµα έχει αναχθεί σε δύο απλούστερα προβλήµατα, στην ανεξάρτητη δηλαδή ταξινόµησητωνδύουποπινάκων. Μετά τον διαµερισµό του πίνακα, η ίδια διαδικασία εφαρµόζεται στους δύο υποπίνακες, ύστερα στους υποπίνακες των υποπινάκων, κοκ., µέχρις ότου ο κάθε υποπίνακας να αποτελείται από ένα µόνο στοιχείο. Στο σηµείο αυτό ο αρχικός πίνακας έχει ταξινοµηθεί.
32 ΤΑΞΙΝΟΜΗΣΗ Οαλγόριθµος σε C: void quicksort(int left, int right, int p[]) int i, j, mid, x, temp; if (left < right) i = left; j = right; mid = (left+right)/2; x = p[mid]; while (i < j) while (p[i] < x) i++; while (p[j] > x) j--; if (i < j) if (p[i] == p[j]) if (i<mid) i++; if (j>mid) j--; else temp = p[i]; p[i] = p[j]; p[j] = temp; quicksort(left,j-1,p); quicksort(j+1,right,p);
33 ΓΡΑΜΜΙΚΕΣ ΛΙΣΤΕΣ Γραµµική λίστα (linear list) είναι ένα πεπερασµένο σύνολο από κόµβους x 1, x 2,..., x n όπου το στοιχείο x k προηγείται του στοιχείου x k+1 καιέπεταιτουx k-1. Κατατάσσονται συνήθως σε δύο κατηγορίες: Σειριακές γραµµικές λίστες (sequential linear lists) Συνδεδεµένες γραµµικές λίστες (linked linear lists) Επίσης, οι γραµµικές λίστες χαρακτηρίζονται σαν: Στατικές δοµές δεδοµένων (static data structures) υναµικές δοµές δεδοµένων (dynamic data structures)
34 ΣΕΙΡΙΑΚΕΣ ΛΙΣΤΕΣ Στοίβα (stack) Μπορούµε να την παραλληλίσουµε σανµία στοίβα από πιάτα. Κάθε νέο στοιχείο τοποθετείται στην κορυφή (top). Το στοιχείο που βρίσκεται στην κορυφή της στοίβας εξέρχεται πρώτο. Αυτή η µέθοδος επεξεργασίας ονοµάζεται LIFO (Last In First Out)
35 ΣΕΙΡΙΑΚΕΣ ΛΙΣΤΕΣ Μία στατική στοίβα υλοποιείται µε τηχρήσηενόςµονοδιάστατου πίνακα και ενός δείκτη. ύο είναι οι κύριες λειτουργίες στη στοίβα: Ώθηση (push) στοιχείου στην κορυφή της στοίβας Απώθηση (pop) στοιχείου από τη στοίβα 4 3 top
36 ΣΕΙΡΙΑΚΕΣ ΛΙΣΤΕΣ Υλοποίηση στοίβας σε C: #define N 100 int stack[n], top = -1; void push(int stack[],int *t,int obj) if (*t = = N-1) printf("stack overflow...\n"); getch(); abort(); else stack[++(*t)] = obj; int pop(int stack[],int *t) int r ; if (*t < 0) printf("stack empty...\n"); getch(); abort(); else r = stack[(*t)--]; return r;
37 Ουρά (queue) ΣΕΙΡΙΑΚΕΣ ΛΙΣΤΕΣ Την έννοια της ουράς την συναντάµε συχνά στην καθηµερινή µας ζωή, π.χ. ουρά αναµονής µε ανθρώπους. Το άτοµο που είναι πρώτο στην ουρά, εξυπηρετείται και εξέρχεται. Το άτοµο πουµόλις καταφθάνει, τοποθετείται στο τέλος της ουράς. Η µέθοδος αυτή επεξεργασίας ονοµάζεται FIFO (First In First Out)
38 ΣΕΙΡΙΑΚΕΣ ΛΙΣΤΕΣ ύο βασικές λειτουργίες: Εισαγωγή (enqueue) στοιχείου στο πίσω άκρο της ουράς Εξαγωγή (dequeue) στοιχείου από το εµπρός άκρο της ουράς Εποµένως, για την υλοποίηση της ουράς χρειάζονται ένας πίνακας και δύο δείκτες ο εµπρός (front) και οπίσω(rear) front rear
39 ΣΕΙΡΙΑΚΕΣ ΛΙΣΤΕΣ Υλοποίηση ουράς σε C: #define N 100 int q[n], front = -1, rear = -1; void enqueue(int q[], int *r, int obj) if (*r = = N-1) printf("queue is full..."); getch(); else q[++(*r)] = obj; void dequeue(int q[], int *f, int r) int x; if (*f = = r) printf("queue is empty...\n"); else x = q[++(*f)]; printf("%d has been deleted...",x);
40 ΣΥΝ Ε ΕΜΕΝΕΣ ΛΙΣΤΕΣ Οι στατικές δοµές που µελετήθηκαν, παρουσιάζουν προβλήµατα στην εισαγωγή και διαγραφή κόµβων και στην αποδοτική εκµετάλλευση της διαθέσιµης µνήµης. Κύριο χαρακτηριστικό των συνδεδεµένων λιστών είναι ότι οι κόµβοι τους βρίσκονται σε αποµακρυσµένες θέσεις µνήµης και η σύνδεσή τους γίνεται µε δείκτες.
41 ΣΥΝ Ε ΕΜΕΝΕΣ ΛΙΣΤΕΣ Κάθε κόµβος της λίστας υλοποιείται µε µία δοµή (structure) µε δύο στοιχεία. Το ένα µέλος (data) περιέχει τα δεδοµένα (οποιουδήποτε τύπου) του κόµβου και το άλλο µέλος (next) είναι δείκτης προς τον επόµενο κόµβο. Τοποθετείται ένας δείκτης (head) στον πρώτο κόµβο για να προσπελάζεται ηλίστα, ενώ ο δείκτης του τελευταίου κόµβου δείχνει στο NULL για να εντοπίζεται το τέλος της λίστας. data next data next data next data next head NULL
42 ΣΥΝ Ε ΕΜΕΝΕΣ ΛΙΣΤΕΣ Παράδειγµα υλοποίησης λίστας ακεραίων στην C: struct node int data; struct node *next; ; typedef struct node * PTR;
43 ΣΥΝ Ε ΕΜΕΝΕΣ ΛΙΣΤΕΣ ηµιουργία λίστας PTR list_create(ptr head) PTR current; int x; printf( Give an integer, 0 to stop: ); scanf( %i,&x); if (x = = 0) return NULL; else head = malloc(sizeof(struct node)); head->data = x; current = head; printf( Give an integer, 0 to stop: ); scanf( %i,&x); while (x!=0) current->next = malloc(sizeof(struct node)); current = current->next; current->data = x; printf( Give an integer, 0 to stop: ); scanf( %i,&x); current->next = NULL; return head;
44 ΣΥΝ Ε ΕΜΕΝΕΣ ΛΙΣΤΕΣ Εισαγωγή στοιχείου PTR insert_to_list(ptr head, int x) PTR current, previous, newnode; int found; newnode = malloc(sizeof(struct node)); newnode->data = x; newnode->next = NULL; if (head = = NULL) head = newnode; else if (newnode->data < head->data) newnode->next = head; head = newnode; else previous = head; current = head->next; found = 0; while (current!= NULL && found = = 0) if (newnode->data < current->data) found = 1; else previous = current; current = current->next; previous->next = newnode; newnode->next = current; return head;
45 ΣΥΝ Ε ΕΜΕΝΕΣ ΛΙΣΤΕΣ ιαγραφή στοιχείου από λίστα PTR delete_from_list(ptr head, int x) PTR current, previous; int found; current = head; if (current = = NULL) printf("empty list...nothing to delete.\n"); getch(); else if (x = = head->data) head = head->next; free(current); else previous = current; current = head->next; found = 0; while (current!= NULL && found = = 0) if (x = = current->data) found = 1; else previous = current; current = current->next; if (found = = 1) previous->next = current->next; free(current); else printf("\nthe character is not in the list."); getch(); return head;
46 Εκτύπωση λίστας void print_list(ptr head) PTR current; current = head; if (current = = NULL) printf("the list is empty.\n"); else while (current!= NULL) printf("%i ", current->data); current = current->next; ΣΥΝ Ε ΕΜΕΝΕΣ ΛΙΣΤΕΣ
47 ΣΥΝ Ε ΕΜΕΝΕΣ ΛΙΣΤΕΣ Στοίβα ως Συνδεδεµένη Λίστα Η στοίβα υλοποιείται µε έναν δείκτη top που αρχικοποιείται στο NULL, και δείχνει ότι η στοίβα είναι άδεια. Ηλειτουργίαpush δεν ελέγχει για υπερχείλιση γιατί θεωρητικά η στοίβα µπορεί να έχει όσους κόµβους θέλουµε (αφού δηµιουργείται δυναµικά). Επίσης, η λειτουργίαpop, µε τη βοήθεια της εντολής free επιστρέφει στη διαθέσιµη µνήµη τουη/υ τοχώροπου καταλαµβάνονταν από τον κόµβο που διαγράφηκε.
48 PTR top = NULL; PTR push(int obj, PTR t) PTR newnode; newnode = malloc(sizeof(struct node)); newnode->data = obj; newnode->next = t; t = newnode; return t; ΣΥΝ Ε ΕΜΕΝΕΣ ΛΙΣΤΕΣ PTR pop(ptr t, int *obj) PTR p; if (t = = NULL) printf("stack empty.\n"); getch(); else p = t; t = t->next; *obj = p->data; free(p); return t;
49 ΣΥΝ Ε ΕΜΕΝΕΣ ΛΙΣΤΕΣ Ουρά ως Συνδεδεµένη Λίστα Η ουρά υλοποιείται µε τηχρήσηδύοδεικτώνfront και rear που αρχικοποιούνται στην τιµή NULL. Η άδεια ουρά εκφράζεται µε front = NULL. Όπως και στην περίπτωση της στοίβας, δεν χρειάζεται να γίνεται έλεγχος υπερχείλισης από τη στιγµή που η ουρά αυξάνεται δυναµικά.
50 ΣΥΝ Ε ΕΜΕΝΕΣ ΛΙΣΤΕΣ PTR front = NULL, rear = NULL; void enqueue(int obj, PTR *pf, PTR *pr) PTR newnode; newnode = malloc(sizeof(struct node)); newnode->data = obj; newnode->next = NULL; if ((*pf) = = NULL) *pf = newnode; *pr = newnode; else (*pr)->next = newnode; *pr = newnode; void dequeue(ptr *pf, PTR *pr) PTR p; if ((*pf) = = NULL) printf("\nqueue empty. No elements to delete.\n"); else p = *pf; *pf = (*pf)->next; if ((*pf) = = NULL) *pr = *pf; printf("\n%d has been deleted...\n",p->data); free(p); getch();
51 ΕΝ ΡΑ Ορισµός (αναδροµικός) Ένα δένδρο Τ είναι ένα πεπερασµένο σύνολο από έναν ή περισσότερους κόµβους. Ο πρώτοςκόµβος του δένδρου ονοµάζεται ρίζα (root), ενώ οι υπόλοιποι κόµβοι απαρτίζουν άλλα υποσύνολα που µε τη σειρά τους είναι δένδρα και ονοµάζονται υποδένδρα (subtrees).
52 ΕΝ ΡΑ Π.χ. T = (A, B, C, D, E, F, G) A ρίζα Α. B C D E F T1 = (B) T2 = (C, D, E, F, G) G
53 ΕΝ ΡΑ Βαθµός του κόµβου (node degree) Είναι ο αριθµός των υποδένδρων που αρχίζουν από ένα κόµβο. π.χ. Οκόµβος Α έχει βαθµό 2. Οκόµβος C έχει βαθµό 3. Βαθµός του δένδρου (tree degree) Είναι ο µέγιστος βαθµός από όλους τους βαθµούς κόµβων. Τα δένδρα που χρησιµοποιούνται περισσότερο στην πράξη είναι τα δυαδικά δένδρα (binary trees), µε βαθµό 2.
54 ΕΝ ΡΑ Όταν έχει σηµασία η διάταξη των κλαδιών ενός δένδρου, τότε αυτό λέγεται διατεταγµένο(ordered). Μία ενδιαφέρουσα µορφή διατεταγµένου δένδρου είναι το δυαδικό δένδρο αναζήτησης (binary search tree). Ένα δυαδικό δένδρο αναζήτησης είναι οργανωµένο έτσι ώστε για κάθε κόµβο t, όλα τα κλειδιά του αριστερού υποδένδρου να έχουν τιµή µικρότερη από την τιµή τουκόµβου t και όλα τα κλειδιά του δεξιού υποδένδρου να έχουν τιµή µεγαλύτερη από την αντίστοιχη του κόµβου t.
55 ΕΝ ΡΑ ΥΑ ΙΚΑ ΕΝ ΡΑ (Binary trees) Ορισµός Ένα δυαδικό δένδρο αποτελείται από ένα πεπερασµένο σύνολο κόµβων. Το δένδρο είναι είτε άδειο, είτε αποτελείται από δύο άλλα δυαδικάδένδραπουονοµάζονται αριστερό και δεξιό υποδένδρο. Ορισµός στην C: struct treenode char data; struct treenode * left; struct treenode * right; ; typedef struct treenode * PTR;
56 ΕΝ ΡΑ Μία σπουδαία λειτουργία σε ένα δένδρο είναι η διάσχισή του (traversal) ή διέλευση, η επίσκεψη δηλ. όλων των κόµβων του µία φορά. Υπάρχουν τρεις διαφορετικές µέθοδοι διάσχισης: α) Προδιατεταγµένη µέθοδος (preorder traversal) β) Ενδοδιατεταγµένη µέθοδος (inorder traversal) γ) Μεταδιατεταγµένη µέθοδος (postorder traversal)
57 ΕΝ ΡΑ preorder 1. Επίσκεψη της ρίζας 2. Επίσκεψη του αριστερού υποδένδρου 3. Επίσκεψη του δεξιού υποδένδρου inorder 1. Επίσκεψη του αριστερού υποδένδρου 2. Επίσκεψη της ρίζας 3. Επίσκεψη του δεξιού υποδένδρου postorder 1. Επίσκεψη του αριστερού υποδένδρου 2. Επίσκεψη του δεξιού υποδένδρου 3. Επίσκεψη της ρίζας
58 ΕΝ ΡΑ Υλοποίηση στην C: void preorder_traversal(ptr t) if (t!=null) printf("%c ",t->data); preorder_traversal(t->left); preorder_traversal(t->right); void inorder_traversal(ptr t) if (t!=null) inorder_traversal(t->left); printf("%c ",t->data); inorder_traversal(t->right); void postorder_traversal(ptr t) if (t!=null) postorder_traversal(t->left); postorder_traversal(t->right); printf("%c,t->data);
59 Εισαγωγή κόµβου σε υαδικό ένδρο Αναζήτησης: void insert_node(ptr *pt, char x) PTR t; t= *pt; ΕΝ ΡΑ if (t= =NULL) t = malloc(sizeof (struct treenode)); t->data = x; t->left = NULL; t->right = NULL; else if (x<t->data) insert_node(&(t->left),x); else insert_node(&(t->right),x); *pt = t;
60 ΕΝ ΡΑ ιαγραφή κόµβουαπό υαδικό ένδροαναζήτησης: Η διαδικασία της διαγραφής είναι πιο σύνθετη από τη διαδικασία της εισαγωγής. Αν ο κόµβος είναι τερµατικός, τότε είναι εύκολο. Επίσης εύκολη είναι η περίπτωση που ο διαγραφόµενος κόµβος έχει µόνον ένα απόγονο. ύσκολη είναι η περίπτωση που ο κόµβος έχει δύο απογόνους. Σ αυτή την περίπτωση ο κόµβος πρέπει να αντικατασταθεί είτε από τον πιο δεξιό κόµβο του αριστερού υποδένδρου, ή απότονπιο αριστερό κόµβο του δεξιού υποδένδρου.
61 ΕΝ ΡΑ Ισορροπηµένα δένδρα Ένα δυαδικό δένδρο λέγεται ισορροπηµένο κατά ύψος (height balanced tree) αν το ύψος του αριστερού και του δεξιού υποδένδρου κάθε κόµβου διαφέρει το πολύ κατά ένα. Ένα δυαδικό δένδρο λέγεται τέλεια ισορροπηµένο (perfectly balanced tree) αν το πλήθος των κόµβων του αριστερού και του δεξιού υποδένδρου κάθε κόµβου διαφέρει το πολύ κατά ένα.
62 ΕΝ ΡΑ Π.χ. α) Εκφυλισµένο δένδρο β) Ισορροπηµένο κατά ύψος γ) Τέλεια ισορροπηµένο δένδρο δένδρο
63 B-trees Το όνοµα µάλλον προέρχεται από τον όρο balanced tree (ισορροπηµένο δένδρο) και όχι από το binary tree. B-tree τάξης (ή βαθµού) n είναι το δένδρο µε ταεξής χαρακτηριστικά: Η ρίζα έχει το λιγότερο ένα κλειδί και το περισσότερο 2n κλειδιά. Κάθε εσωτερικός κόµβος (εκτός της ρίζας) έχει το λιγότερο n κλειδιά και το περισσότερο 2n κλειδιά. Ένας κόµβος µε m (1<= m <= 2n) κλειδιά έχει m+1 παιδιά. Όλαταφύλλαβρίσκονταιστοίδιοεπίπεδο.
64 B-trees Π.χ
65 B-trees Εισαγωγή σε B-tree Γίνεται πάντα σε έναν κόµβο που είναι φύλλο. Αν ο κόµβος που θα δεχθεί το κλειδί έχει λιγότερα από 2n κλειδιά, η εισαγωγή είναι εύκολη. Αν ο κόµβος έχει 2n κλειδιά, η εισαγωγή είναι αδύνατη γιατί δηµιουργείται υπερχείλιση. Τότε ο κόµβος διασπάται σε δύο άλλους κόµβους. Το µεσαίο κλειδί ανεβαίνει στον κόµβο πρόγονο των δύο διασπασθέντων και τα υπόλοιπα κλειδιά διαµοιράζονται σ αυτούς τους δύο κόµβους. Μία διάσπαση µπορεί να έχει ως αποτέλεσµα τη διάσπαση ενός κόµβου που βρίσκεται στο πιο πάνω επίπεδο κ.ο.κ. Στην πιο ακραία περίπτωση υπάρχει το ενδεχόµενο διάσπασης της ρίζας, οπότε το ύψος του δένδρου αυξάνει κατά ένα.
66 ΓΡΑΦΟΙ Ορισµοί Ένας γράφος G χαρακτηρίζεται από δύο σύνολα V και E. Το σύνολο V είναι ένα πεπερασµένο διάφορο του κενού σύνολο που περιέχει ως στοιχεία τις κορυφές (vertices) του γράφου. Το σύνολο E έχει ως στοιχεία τα ζευγάρια κορυφών του γράφου που ορίζουν τις ακµές (edges). Τα σύµβολα V(G), E(G) και G(V,E) χρησιµοποιούνται αντίστοιχα για την αναπαράσταση των συνόλων V, E και του γράφου G.
67 ΓΡΑΦΟΙ Π.χ G1 G2 G3
68 ΓΡΑΦΟΙ Ένας γράφος ονοµάζεται µη-κατευθυνόµενος (undirected) όταν τα ζευγάρια των κορυφών που ορίζουν τις ακµές δεν είναι διατεταγµένα. ηλαδή, τα ζευγάρια (v1,v2) και (v2,v1) ορίζουν την ίδια ακµή. Οι γράφοι G1, G2 του προηγούµενου σχήµατος είναι µηκατευθυνόµενοι. Ένας γράφος ονοµάζεται κατευθυνόµενος (directed graph) όταν κάθε ακµή του ορίζεται από ένα διατεταγµένο ζευγάρι κορυφών. Συµβολίζουµε τοζευγάρι αυτό <v1,v2> και θεωρούµε την κατεύθυνση από την κορυφή v1, που ονοµάζεται ουρά (tail), προς την v2, που ονοµάζεται κεφαλή (head). Ο γράφοςg3 του σχήµατος είναι κατευθυνόµενος.
69 ΓΡΑΦΟΙ Τα σύνολα V των γράφων G1, G2, G3 είναι: V(G1) = (1,2,3,4) V(G2) = (1,2,3,4,5,6,7) V(G3) = (1,2,3) Τα σύνολα E ορίζονται ως εξής: E(G1) = ( (1,2), (1,3), (1,4), (2,3), (2,4), (3,4) ) E(G2) = ( (1,2), (1,3), (2,4), (2,5), (3,6), (3,7) ) E(G3) = ( <1,2>, <2,1>, <2,3> ) Ένας µη-κατευθυνόµενος γράφος µε n κορυφές λέγεται πλήρης (complete) αν έχει ακριβώς ακµές. π.χ. ογράφοςg1 του σχήµατος είναι πλήρης.
70 ΓΡΑΦΟΙ Αν (v1,v2) είναι µία ακµή του συνόλου E(G), τότε οι κορυφές v1 και v2 λέγονται διπλανές (adjacent). H ακµή (v1,v2) ονοµάζεται στιγµιότυπο (incident) των κορυφών v1 και v2 και αν δύο κορυφές v1 και v2 δεν συνδέονται µεταξύ τους ονοµάζονται ανεξάρτητες (independent). Μονοπάτι (path) από µία κορυφή vm προς µία άλλη κορυφή vn ορίζεται η λίστα των διαδοχικών κορυφών [vm,...,vn] που συνδέονται µε ακµές που ανήκουν στο E(G). Για παράδειγµα, το [1,2,3,4] είναι ένα µονοπάτι από την κορυφή 1 στην κορυφή 4 στο γράφο G1 του σχήµατος. Μήκος (length) µονοπατιού είναι ο αριθµός των ακµών που υπάρχουν στο µονοπάτι. Στο προηγούµενο παράδειγµα τοµήκος του µονοπατιού είναι 3. Ένα µονοπάτι ονοµάζεται απλό (simple) όταν καµία κορυφή δεν εµφανίζεται παραπάνω από µία φορά σ αυτό.
71 ΓΡΑΦΟΙ Π.χ. Το [1,2,3,4] είναι απλό µονοπάτι, ενώ το [1,2,4,2] δεν είναι. Το [1,2,3,2] δεν είναι µονοπάτι του G3 γιατί η ακµή <3,2> δεν ανήκει στο E(G3). Κύκλος (cycle) είναι ένα απλό µονοπάτι όπου ταυτίζεται η πρώτη και η τελευταία κορυφή. Π.χ. το µονοπάτι [1,2,3,1] του G1 είναι κύκλος. Απ αυτό συµπεραίνουµε ότι ένα δένδρο είναι ένας γράφος που δεν έχει καθόλου κύκλους. Βαθµός (degree) κορυφής λέγεται ο αριθµός των ακµών που είναι στιγµιότυπα της κορυφής.
72 ΓΡΑΦΟΙ ΜΕΘΟ ΟΙ ΑΝΑΠΑΡΑΣΤΑΣΗΣ ΓΡΑΦΩΝ Πίνακες διπλανών κορυφών (adjacency matrices) Λίστες διπλανών κορυφών (adjacency lists)
73 ΓΡΑΦΟΙ Αναπαράσταση γράφου µε Πίνακα ιπλανών Κορυφών Ένας γράφος G µε n κορυφές µπορεί να αναπαρασταθεί µε τη βοήθεια ενός δισδιάστατου πίνακα N*N. To στοιχείο (i, j) του πίνακα παίρνει την τιµή 1 αν η ακµή (vi, vj) ανήκει στο E(G), αλλιώς παίρνει την τιµή 0. Για παράδειγµα, οι πίνακες διπλανών κορυφών για τους γράφους G1, G3 του προαναφερθέντος σχήµατος είναι: G1 G3 Υλοποίηση στην C: int graph[n][n];
74 ΓΡΑΦΟΙ Αναπαράσταση γράφου µε Λίστες ιπλανώνκορυφών Σ αυτή την αναπαράσταση του γράφου που αποτελείται από n κορυφές, ορίζεται ένας πίνακας n θέσεων τα στοιχεία του οποίου είναι συνδεδεµένες λίστες. Κάθε κόµβος της λίστας στη θέση i του πίνακα αναπαριστά κορυφή του γράφου, η οποία συνδέεται µε την κορυφή i.
75 ΓΡΑΦΟΙ Π.χ NULL NULL NULL NULL 1 NULL 2 2 NULL NULL
76 ΓΡΑΦΟΙ ΜΕΘΟ ΟΙ ΙΑΣΧΙΣΗΣ ΓΡΑΦΩΝ Τα προβλήµατα που συνήθως αντιµετωπίζουµε στους γράφους, καταλήγουν σε αλγορίθµους που σχετίζονται µε την εύρεση ενός µονοπατιού, το οποίο να συνδέει µία αρχική κορυφή (κόµβος εκκίνησης) µε µία τελική κορυφή (κόµβος άφιξης). Από τους βασικότερους αλγόριθµους γράφων είναι αυτοί που µας διασφαλίζουν τρόπους επίσκεψης όλων των κορυφών ενός γράφου. Αναζήτηση µε προτεραιότητα βάθους (depth first search) Αναζήτηση µε προτεραιότητα πλάτους (breadth first search)
77 Αναζήτηση µε Προτεραιότητα Βάθους Υλοποιείται µε τη χρήση στοίβας. ΓΡΑΦΟΙ α) Επισκεπτόµαστε την κορυφή. β) Τοποθετούµε (push) την κορυφή σε µίαστοίβαγιανατηθυµόµαστε. γ) Τη µαρκάρουµε, ώστε να µη την επισκεφθούµε ξανά. Κανόνας 1 Αν είναι δυνατόν, επισκεπτόµαστε µία διπλανή κορυφή που δεν την έχουµε ξανα-επισκεφθεί, τη µαρκάρουµε και την τοποθετούµε στη στοίβα. Κανόνας 2 Αν δεν µπορούµε ναακολουθήσουµε τον Κανόνα 1, τότε, αν είναι δυνατόν, εξάγουµε (pop) µία κορυφή από τη στοίβα. Κανόνας 3 Αν δεν µπορούµε ναακολουθήσουµε τον Κανόνα 1 ή τονκανόνα2, τότε έχουµε τελειώσει.
78 ΓΡΑΦΟΙ Π.χ. A B C D E F H G I H σειρά είναι A,B,F,H,C,D,G,I, E.
79 ΓΡΑΦΟΙ Αναζήτηση µε Προτεραιότητα Πλάτους Yλοποιείται µε τη χρήση µίας ουράς. Επισκεπτόµαστε την κορυφή και την κάνουµε τρέχουσα κορυφή. Ύστερα, ακολουθούµε τουςεξήςκανόνες: Κανόνας 1 Επίσκεψη της επόµενης (αν υπάρχει) κορυφής, που είναι διπλανή στην τρέχουσα κορυφή και δεν την έχουµε ακόµα επισκεφθεί, τη µαρκάρουµε και την εισάγουµε στην ουρά(enqueue). Κανόνας 2 Αν δεν µπορούµε ναεφαρµόσουµε τον Κανόνα 1, επειδή δεν υπάρχουν άλλες κορυφές που δεν έχουµε ακόµα επισκεφθεί, εξάγουµε (dequeue) µία κορυφή από την ουρά (αν αυτό είναι εφικτό) και την κάνουµε τρέχουσακορυφή. Κανόνας 3 Αν δεν µπορούµε ναεφαρµόσουµε τον Κανόνα 2, επειδή η ουρά είναι άδεια, τότε έχουµε τελειώσει. Άρα, η σειρά επίσκεψης είναι A, B, C, D, E, F, G, H, I.
80 ΠΙΝΑΚΕΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ Ένας πίνακας κατακερµατισµού (hash table) είναι µία δοµή που προσφέρει πολύ γρήγορη εισαγωγή και αναζήτηση. Ενα σηµαντικό θέµα είναι πώς ένα πλήθος από κλειδιά θα µετασχηµατισθεί σε ένα πλήθος από θέσεις πίνακα. Σε ένα πίνακα κατακερµατισµού αυτό επιτυγχάνεται µε µία συνάρτηση κατακερµατισµού (hashing function).
81 ΠΙΝΑΚΕΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΥ ΣΥΓΚΡΟΥΣΕΙΣ (Collisions) Όταν δύο διαφορετικά κλειδιά διεκδικούν την ίδια θέση του πίνακα. Αυτή η κατάσταση ονοµάζεται σύγκρουση (collision). Τα δύο στοιχεία που διεκδικούν την ίδια θέση στον πίνακα ονοµάζονται συνώνυµα (synonyms). Μία προσέγγιση για τη λύση στο πρόβληµα αυτό, είναι να εξετάσουµε τον πίνακα, να βρούµε µία άδεια θέση και να εισάγουµε εκεί το νέο στοιχείο. Αυτή η τεχνική ονοµάζεται ανοιχτή διευθυνσιοδότηση (open addressing). Μία δεύτερη προσέγγιση είναι η δηµιουργία ενός πίνακα που αποτελείται από συνδεδεµένες λίστες. Έτσι, όταν συµβεί σύγκρουση, το νέο στοιχείο εισάγεται στη λίστα της συγκεκριµένης θέσης του πίνακα. Αυτή η τεχνική ονοµάζεται ξεχωριστή σύνδεση (separate chaining).
82 Πίνακας χαρακτηριστικών οµών εδοµένων οµή εδοµένων Πλεονεκτήµατα Μειονεκτήµατα ΠΙΝΑΚΑΣ Γρήγορη εισαγωγή, πολύ γρήγορη προσπέλαση αν η θέση είναι γνωστή Αργή αναζήτηση, αργή διαγραφή, προκαθορισµένο µέγεθος ΣΤΟΙΒΑ LIFO λειτουργία Αργή προσπέλαση σε άλλα στοιχεία ΟΥΡΑ FIFO λειτουργία Αργή προσπέλαση σε άλλα στοιχεία ΣΥΝ Ε ΕΜΕΝΗ ΛΙΣΤΑ ΥΑ ΙΚΟ ΕΝ ΡΟ Γρήγορη εισαγωγή και διαγραφή Γρήγορη αναζήτηση, εισαγωγή και διαγραφή Αργή αναζήτηση Αλγόριθµος διαγραφής πολύπλοκος ΓΡΑΦΟΣ Απεικονίζει καταστάσεις πραγµατικού κόσµου Μερικοί αλγόριθµοι είναι αργοί και πολύπλοκοι
3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή
3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ 3.1 ΑΝΑ ΡΟΜΗ 3.1.1 Εισαγωγή ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Αναδροµή είναι η µέθοδος κατά την οποία, σε µία γλώσσα προγραµµατισµού, µία διαδικασία ή συνάρτηση έχει την δυνατότητα
Διαβάστε περισσότεραΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ (Σηµειώσεις Θεωρίας)
TEΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ (Σηµειώσεις Θεωρίας) Ευάγγελος Γ. Ούτσιος Σέρρες 2004 2 ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ
Διαβάστε περισσότεραΑλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες
Διαβάστε περισσότεραΑλγόριθμοι και Δομές Δεδομένων(Θ) Ευάγγελος Γ. Ούτσιος
Αλγόριθμοι και Δομές Δεδομένων(Θ) Ενότητα 5: ΑΝΑΖΗΤΗΣΗ Ευάγγελος Γ. Ούτσιος ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Διαβάστε περισσότεραΑλγόριθµοι + οµές εδοµένων = Προγράµµατα
2 ΟΜΕΣ Ε ΟΜΕΝΩΝ 2.1 ΕΙΣΑΓΩΓΗ Εκτός από τους αλγορίθµους, σηµαντική έννοια για την Πληροφορική είναι και η έννοια των δεδοµένων. Τα δεδοµένα αποθηκεύονται στον υπολογιστή µε τη βοήθεια των λεγόµενων δοµών
Διαβάστε περισσότεραΑλγόριθμοι & Δομές Δεδομένων
ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΣΧΟΛΗ ΤΜΗΜΑ Αλγόριθμοι & Δομές Δεδομένων Ευάγγελος Γ. Ούτσιος (BSc, MSc) Καθηγητής Εφαρμογών Τομέας Υπολογιστικών τεχνικών και Συστημάτων Σεπτέμβριος
Διαβάστε περισσότεραΑφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ισαγωγή στην πιστήμη των Υπολογιστών 2015-16 λγόριθμοι και ομές εδομένων (IΙ) (γράφοι και δένδρα) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης φηρημένες
Διαβάστε περισσότεραιαφάνειες παρουσίασης #11
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης
Διαβάστε περισσότεραΟι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται
Διαβάστε περισσότεραΕπιµέλεια Θοδωρής Πιερράτος
εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,
Διαβάστε περισσότεραΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ (Σηµειώσεις Εργαστηρίου)
TEΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ (Σηµειώσεις Εργαστηρίου) Ευάγγελος Γ. Ούτσιος Σέρρες 2004 2 ΠΕΡΙΕΧΟΜΕΝΑ
Διαβάστε περισσότεραΔιάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 22: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης - Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 6. Δυαδικά Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 18/11/2016 Εισαγωγή Τα
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα
Διάλεξη Ε4: Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Δυαδικά Δένδρα Αναζήτησης Ισοζυγισμένα Δένδρα & 2-3 Δένδρα Διδάσκων: Κωνσταντίνος
Διαβάστε περισσότεραΔομές δεδομένων (2) Αλγόριθμοι
Δομές δεδομένων (2) Αλγόριθμοι Παράγωγοι τύποι (struct) σύνοψη προηγουμένων Πίνακες: πολλές μεταβλητές ίδιου τύπου Παράγωγοι τύποι ή Δομές (struct): ομαδοποίηση μεταβλητών διαφορετικού τύπου struct Student
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ
ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ Τα δεδομένα (data) είναι η αφαιρετική αναπαράσταση της πραγματικότητας και συνεπώς μία απλοποιημένη όψη της. Η συλλογή των ακατέργαστων δεδομένων και ο συσχετισμός
Διαβάστε περισσότεραΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Γιάννης Κουτσονίκος Επίκουρος Καθηγητής Οργάνωση Δεδομένων Δομή Δεδομένων: τεχνική οργάνωσης των δεδομένων με σκοπό την
Διαβάστε περισσότεραΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3ο: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΜΕΡΟΣ 2 ο : ΣΤΟΙΒΑ & ΟΥΡΑ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ ΣΤΟΙΒΑ 2 Μια στοίβα
Διαβάστε περισσότεραένδρα (tail, head) Γονέας Παιδί (ancestor, descendant) Φύλλο Εσωτερικός Κόµβος (leaf, non-leaf) που αποτελεί το γονέα του v.
ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ΗΥ240 - Παναγιώτα Φατούρου 1 ένδρα Κόµβοι (nodes) Ακµές (edges) Ουρά και κεφαλή ακµής (tail, head) Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) Μονοπάτι (path) Πρόγονος απόγονος
Διαβάστε περισσότεραΒασικές Δοµές Δεδοµένων. Σύντοµη επανάληψη (ΕΠΛ 035).
Βασικές Δοµές Δεδοµένων Σύντοµη επανάληψη (ΕΠΛ 035). Περίληψη Γραµµικές Δοµές Δεδοµένων Πίνακες Λίστες Στοίβες Ουρές Γράφοι Δέντρα Γραµµικές Δοµές Πίνακας (array) A[0] A[1] A[2] A[ ] A[n-1] Προκαθορισµένη
Διαβάστε περισσότεραΔιάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα
Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης (ΔΔΑ) Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου Εισαγωγή στοιχείου
Διαβάστε περισσότεραυναµικές οµές εδοµένων
υναµικές οµές εδοµένων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: υναµικές οµές εδοµένων Γενικά υναµική έσµευση Μνήµης οµή τύπου structure αυτοαναφορικές δοµές Η δήλωση typedef στη C Αναπαράσταση
Διαβάστε περισσότεραΒασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας
ΚΕΦΑΛΑΙΟ 8: Αφηρηµένοι τύποι δεδοµένων 8.1 οµές δεδοµένων (data structures) 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας Αδόµητα δεδοµένα οδός Ζέας
Διαβάστε περισσότεραΔιάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 7: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου Διδάσκων:
Διαβάστε περισσότεραΠΛΗ111. Ανοιξη 2005. Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 7 ο έντρο Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης έντρο Ορισµός Υλοποίηση µε Πίνακα Υλοποίηση µε είκτες υαδικό έντρο
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 23: οµές εδοµένων και Αλγόριθµοι Ενδιάµεση Εξέταση Ηµεροµηνία : ευτέρα, 3 Νοεµβρίου 2008 ιάρκεια : 2.00-4.00 ιδάσκουσα : Άννα Φιλίππου Ονοµατεπώνυµο: ΣΚΕΛΕΤΟΙ
Διαβάστε περισσότεραένδρα u o Κόµβοι (nodes) o Ακµές (edges) o Ουρά και κεφαλή ακµής (tail, head) o Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) o Μονοπάτι (pat
ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ένδρα u o Κόµβοι (nodes) o Ακµές (edges) o Ουρά και κεφαλή ακµής (tail, head) o Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) o Μονοπάτι (path) o Πρόγονος απόγονος (ancestor, descendant)
Διαβάστε περισσότεραΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί
Διαβάστε περισσότερα#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα
#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα ηµήτρης Ν. Σερπάνος Εργαστήριο Συστηµάτων Υπολογιστών Τµήµα Ηλεκτρολόγων Μηχ. & Τεχνολογίας Υπολογιστών Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα Αλγόριθµοι:
Διαβάστε περισσότεραΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,
Γράφοι Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Γράφοι - ορισµοί και υλοποίηση Τοπολογική Ταξινόµηση ιάσχιση Γράφων ΕΠΛ 23 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 26 - Γράφοι Ηπιο
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 10: Λίστες Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εύρεση, εισαγωγή, διαγραφή) Σύγκριση Συνδεδεμένων Λιστών με Πίνακες
Διαβάστε περισσότερα2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ
2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ Προκειμένου να επιτευχθεί η «ακριβής περιγραφή» ενός αλγορίθμου, χρησιμοποιείται κάποια γλώσσα που μπορεί να περιγράφει σειρές ενεργειών με τρόπο αυστηρό,
Διαβάστε περισσότεραοµές εδοµένων 3 ο Εξάµηνο ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ
ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ 1 ένδρα εσωτερικός κόµβος u το δένδρο έχει ύψος 4 u έχει ύψος 3 w έχει βάθος 2 κόµβος ένδρο: γράφηµα χωρίς κύκλους o Ρίζα (root) o Κόµβος (node) o Ακµή (edge) o Γονέας (parent) Παιδί (child)
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ
Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα ιοικητικής Επιστήµης & Τεχνολογίας ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Κεφάλαιο 9 οµές εδοµένων σε C Γιώργος Γιαγλής Περίληψη Κεφαλαίου 9 οµές εδοµένων υναµικές
Διαβάστε περισσότεραΒασικές οµές εδοµένων
Βασικές οµές εδοµένων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αφηρηµένοι Τύποι εδοµένων Οι ΑΤ Στοίβα και Ουρά Υλοποίηση των ΑΤ Στοίβα και Ουρά µε ιαδοχική και υναµική Χορήγηση Μνήµης
Διαβάστε περισσότεραΠΛΗ111. Ανοιξη Μάθηµα 8 ο. Αναζήτηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 8 ο Αναζήτηση Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Αναζήτηση Αναζήτηση σε ιατεταγµένο Πίνακα υαδική Αναζήτηση Κατακερµατισµός
Διαβάστε περισσότεραΠΛΗ111. Ανοιξη 2005. Μάθηµα 10 ο. Γράφοι. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 10 ο Γράφοι Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Γράφοι Ορισµός Αφηρηµένος τύπος δεδοµένων Υλοποίηση Αναζήτηση έντρο
Διαβάστε περισσότεραInsert(K,I,S) Delete(K,S)
ΕΝΟΤΗΤΑ 5 ΣΥΝΟΛΑ & ΛΕΞΙΚΑ Φατούρου Παναγιώτα 1 Σύνολα (Sets) Τα µέλη ενός συνόλου προέρχονται από κάποιο χώρο αντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών αποτελούµενα από έναν αριθµό και
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες
Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Διαβάστε περισσότεραΕνότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις
Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε μία αναδρομική συνάρτηση που θα παίρνει ως παράμετρο ένα δείκτη στη ρίζα ενός δυαδικού δένδρου και θα επιστρέφει το βαθμό του
Διαβάστε περισσότεραΕνότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ
Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΔΕΔΟΜΕΝΑ ΑΛΓΟΡΙΘΜΟΙ -ΠΛΗΡΟΦΟΡΙΑ: Δεδομένα: Αναπαράσταση της Πραγματικότητας Μπορούν να γίνουν αντιληπτά με μια από τις αισθήσεις μας Πληροφορία: Προκύπτει από
Διαβάστε περισσότεραΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ. ΗΥ240 - Παναγιώτα Φατούρου 1
ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ΗΥ240 - Παναγιώτα Φατούρου 1 ένδρα Κόµβοι (nodes) Ακµές (edges) Ουρά και κεφαλή ακµής (tail, head) Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) Μονοπάτι (path) Πρόγονος απόγονος
Διαβάστε περισσότεραΔομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 16 Δένδρα (Trees) 1 / 42 Δένδρα (Trees) Ένα δένδρο είναι ένα συνδεδεμένο γράφημα χωρίς κύκλους Για κάθε
Διαβάστε περισσότεραΠρογραµµατιστικές Τεχνικές
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Προγραµµατιστικές Τεχνικές Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωµύλος Κορακίτης
Διαβάστε περισσότεραΔομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής
Ενότητα 8: Γραμμική Αναζήτηση και Δυαδική Αναζήτηση-Εισαγωγή στα Δέντρα και Δυαδικά Δέντρα-Δυαδικά Δέντρα Αναζήτησης & Υλοποίηση ΔΔΑ με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 11-1
Γράφοι Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Γράφοι - ορισµοί και υλοποίηση Διάσχιση Γράφων Τοπολογική Ταξινόµηση ΕΠΛ 23 Δοµές Δεδοµένων και Αλγόριθµοι - Γράφοι Η πιο γενική µορφή δοµής
Διαβάστε περισσότεραΔομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης
ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Δομές Δεδομένων (Εργ.) Ακ. Έτος 2017-18 Διδάσκων: Ευάγγελος Σπύρου Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης 1. Στόχος του εργαστηρίου Στόχος του δέκατου εργαστηρίου
Διαβάστε περισσότεραΔιάλεξη 05: Αφηρημένοι Τύποι Δεδομένων
Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αφηρημένοι Τύποι Δεδομένων (ΑΤΔ) Οι ΑΤΔ Στοίβα και Ουρά Υλοποίηση των ΑΤΔ Στοίβα και Ουρά ΕΠΛ231 Δομές Δεδομένων
Διαβάστε περισσότεραΠΛΗ111. Ανοιξη 2005. Μάθηµα 3 ο. Συνδεδεµένες Λίστες. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 3 ο Συνδεδεµένες Λίστες Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση ΟΑΤ λίστα Ακολουθιακή λίστα Συνδεδεµένη λίστα
Διαβάστε περισσότεραΚατ οίκον Εργασία 3 Σκελετοί Λύσεων
Κατ οίκον Εργασία 3 Σκελετοί Λύσεων Άσκηση 1 (α) Έστω Α(n) και Κ(n) ο αριθμός των ακμών και ο αριθμός των κόμβων ενός αυστηρά δυαδικού δένδρου με n φύλλα. Θέλουμε να αποδείξουμε για κάθε n 1 την πρόταση
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 3 Ο ΟΜΕΣ Ε ΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ
27 ΚΕΦΑΛΑΙΟ 3 Ο ΟΜΕΣ Ε ΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΠΕΡΙΕΧΟΜΕΝΑ Η έννοια της δοµής δεδοµένων Βασικές λειτουργίες επί των δοµών δεδοµένων Κατηγορίες δοµών δεδοµένων Πίνακες Στοίβες Ουρές Αρχεία Λίστες ένδρα -
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 3-4 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητες 3 & 4: ένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ. Δομές Δεδομένων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος
Προγραμματισμός Η/Υ Δομές Δεδομένων ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Δομές Δεδομένων Τα δεδομένα ενός προβλήματος αποθηκεύονται στον υπολογιστή,
Διαβάστε περισσότεραΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 2 Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα
Διαβάστε περισσότεραΓράφοι. Ορολογία. Ορισµός: G = (V, E) όπου. Ορολογία (συνέχεια) γράφος ή γράφηµα (graph) V:ένα σύνολο E:µια διµελής σχέση στο V
Γράφοι Ορολογία γράφος ή γράφηµα (graph) Ορισµός: G = (V, E) όπου V:ένα σύνολο E:µια διµελής σχέση στο V Ορολογία (συνέχεια) κάθε v V ονοµάζεται κορυφή (vertex) ή κόµβος (node) κάθε (v 1, v 2 ) Ε ονοµάζεται
Διαβάστε περισσότερα6η Διάλεξη Διάσχιση Γράφων και Δέντρων
ΘΕΩΡΙΑ ΓΡΑΦΩΝ 6 η Διάλεξη Διάσχιση Γράφων και Δέντρων Αλγόριθμος αναζήτησης σε Βαθος Αλγόριθμος αναζήτησης κατά Πλάτος Αλγόριθμοι για Δένδρα Εύρεση ελαχίστων Γεννητορικών (Επικαλύπτοντα) Δένδρων Διάσχιση
Διαβάστε περισσότεραΔομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου
Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων κλειδί από ολικά διατεταγμένο σύνολο όπου το κάθε στοιχείο έχει ένα Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου με
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Ενότητα 7: Αφαίρεση δεδόμενων Πασχαλίδης Δημοσθένης Τμήμα Διαχείρισης Εκκλησιαστικών Κειμηλίων Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΟρισµοί κεφαλαίου. Σηµαντικά σηµεία κεφαλαίου
Ορισµοί κεφαλαίου Τα δεδοµένα είναι η αφαιρετική αναπαράσταση της πραγµατικότητας και συνεπώς µια απλοποιηµένη όψη της οµή εδοµένων είναι ένα σύνολο αποθηκευµένων δεδοµένων που υφίστανται επεξεργασία από
Διαβάστε περισσότεραΣυλλογές, Στοίβες και Ουρές
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση οποιουδήποτε στοιχείου. Συλλογή (bag) : Επιστρέφει
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ00 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 01-15
Διαβάστε περισσότεραΒασικές Έννοιες Δοµών Δεδοµένων
Δοµές Δεδοµένων Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος Βασικές Έννοιες
Διαβάστε περισσότεραΑλγόριθμοι Ταξινόμησης Μέρος 1
Αλγόριθμοι Ταξινόμησης Μέρος 1 Μανόλης Κουμπαράκης 1 Το Πρόβλημα της Ταξινόμησης Το πρόβλημα της ταξινόμησης (sorting) μιας ακολουθίας στοιχείων με κλειδιά ενός γνωστού τύπου (π.χ., τους ακέραιους ή τις
Διαβάστε περισσότεραΔιάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εύρεση, εισαγωγή, διαγραφή) - Σύγκριση Συνδεδεμένων Λιστών με Πίνακες
Διαβάστε περισσότεραΔένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, ορισμοί, πράξεις και αναπαράσταση στη μνήμη ΔυαδικάΔένδρακαιΔυαδικάΔένδραΑναζήτησης ΕΠΛ 231 Δομές
Διαβάστε περισσότεραΠΛΗ111. Ανοιξη Μάθηµα 4 ο. Στοίβα. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 4 ο Στοίβα Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση Αφηρηµένος Τύπος εδοµένων Στοίβα Υλοποίηση µε Πίνακα Υλοποίηση
Διαβάστε περισσότεραΟι δομές δεδομένων στοίβα και ουρά
Καθηγητής Πληροφορικής Απαγορεύεται η αναπαραγωγή των σημειώσεων χωρίς αναφορά στην πηγή Βίντεο: https://youtu.be/j8petzztqty Οι δομές δεδομένων στοίβα και ουρά Εισαγωγή Στα πλαίσια του μαθήματος της Ανάπτυξης
Διαβάστε περισσότεραΠΛΗ111. Ανοιξη Μάθηµα 5 ο. Ουρά. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ οµηµένος Προγραµµατισµός Ανοιξη 5 Μάθηµα 5 ο Ουρά Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση Αφηρηµένος Τύπος εδοµένων Ουρά Υλοποίηση µε Κυκλικό Πίνακα Υλοποίηση
Διαβάστε περισσότεραIsEmptyList(L): επιστρέφει true αν L = < >, false
ΕΝΟΤΗΤΑ 3 ΓΡΑΜΜΙΚΕΣ ΛΙΣΤΕΣ Ορισµός Γραµµικές Λίστες Γραµµική λίστα (linear list) είναι ένα σύνολο από n 0 κόµβους L 0, L 1,..., L n-1, όπου το στοιχείο L 0 είναι το πρώτο στοιχείο (ή ο πρώτος κόµβος),
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων
ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Σχετικές έννοιες 8.3 Υλοποίηση δοµών δεδοµένων 8.4 Μια σύντοµη µελέτη περίπτωσης 8.5 Προσαρµοσµένοι τύποι δεδοµένων 1 Βασικές δοµές
Διαβάστε περισσότεραΕισαγωγή στις Αρχές της επιστήμης των Η/Υ. Β Λυκείου
Εισαγωγή στις Αρχές της επιστήμης των Η/Υ Β Λυκείου Επιστήμη των υπολογιστών μελετά Θεωρητικά θεμέλια Φύση πληροφοριών Φύση αλγορίθμων Φύση υπολογισμών Και τις τεχνολογικές εφαρμογές τους Από τις σκοπιές
Διαβάστε περισσότερα(Εργασίες Μελέτες περιπτώσεων)
Τμήμα Μηχανικών Πληροφορικής Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Head node Data Next node Data Next Δεδομένο 2 Δεδομένο 1 Δομές Δεδομένων (Εργασίες Μελέτες περιπτώσεων) Δρ. Πάρις Μαστοροκώστας Καθηγητής
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 8: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αφηρημένοι Τύποι Δεδομένων (ΑΤΔ) Οι ΑΤΔ Στοίβα και Ουρά Υλοποίηση των ΑΤΔ Στοίβα και Ουρά με Στατική Δέσμευση
Διαβάστε περισσότεραΔένδρα. Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών :
Δένδρα Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών : Ανάλυση αλγορίθμων (π.χ. δένδρα αναδρομής) Δομές δεδομένων (π.χ. δένδρα αναζήτησης) ακμή Κατηγορίες (αύξουσα
Διαβάστε περισσότεραΔιασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1
Διασυνδεδεμένες Δομές Δυαδικά Δέντρα Προγραμματισμός II 1 lalis@inf.uth.gr Δέντρα Τα δέντρα είναι κλασικές αναδρομικές δομές Ένα δέντρο αποτελείται από υποδέντρα, καθένα από τα οποία μπορεί να θεωρηθεί
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι
- Δυαδικά Δένδρα (binary trees) - Δυαδικά Δένδρα Αναζήτησης (binary search trees) 1 Δυαδικά Δένδρα Ορισμοί Λειτουργίες Υλοποιήσεις ΑΤΔ Εφαρμογές 2 Ορισμοί (αναδρομικός ορισμός) Ένα δένδρο t είναι ένα πεπερασμένο
Διαβάστε περισσότεραυναµικές οµές εδοµένων (συν.) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα:
υναµικές οµές εδοµένων (συν.) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ταξινοµηµένες Λίστες µε δυναµική δέσµευση µνήµης Αναδροµκές συναρτήσεις ΕΠΛ 12 Αρχές Προγραµµατισµού ΙΙ 1 Λίστες
Διαβάστε περισσότεραΟι λίστες, χάνοντας τα πλεονεκτήματα των πινάκων, λύνουν προβλήματα που παρουσιάζουν οι πίνακες
Δομές δεδομένων Πίνακες Οι πίνακες είναι το πιο απλό «μέσο» αποθήκευσης ομοειδούς πληροφορίας. Χρησιμοποιούν ακριβώς όση μνήμη χρειάζεται για την αποθήκευση της πληροφορίας Επιτρέπουν την προσπέλαση άμεσα
Διαβάστε περισσότεραΚεφάλαιο 3 : εδοµένα. Πίνακες Στοίβα Ουρά Αναζήτηση Ταξινόµηση. Προγράµµατα
εδοµένα Αλγόριθµοι + οµές εδοµένων = Προγράµµατα Πίνακες Στοίβα Ουρά Αναζήτηση Ταξινόµηση Κεφάλαιο 3 : οµές εδοµένων και Αλγόριθµοι Στοίβα Στη δοµή δεδοµένων στοίβα τα δεδοµένα στοιβάζονται το ένα πάνω
Διαβάστε περισσότεραΕπανάληψη Θεωρίας. Καστούμης Γιώργος
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΨΗ ΘΕΩΡΙΑΣ ΚΕΦΑΛΑΙΟ 1 Ορισµοί: Με τον όρο πρόβληµα εννοείται µια κατάσταση η οποία χρήζει αντιµετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή,
Διαβάστε περισσότερα4. Συνδεδεμένες Λίστες
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 4. Συνδεδεμένες Λίστες 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 10/11/2016 Εισαγωγή
Διαβάστε περισσότεραΒασικές Δομές Δεδομένων
Βασικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αφηρημένοι Τύποι Δεδομένων Οι ΑΤΔ Στοίβα και Ουρά Υλοποίηση των ΑΤΔ Στοίβα και Ουρά με Διαδοχική και Δυναμική Χορήγηση
Διαβάστε περισσότεραΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος
ΑΛΓΟΡΙΘΜΟΙ Στο σηµείωµα αυτό αρχικά εξηγείται η έννοια αλγόριθµος και παραθέτονται τα σπουδαιότερα κριτήρια που πρέπει να πληρεί κάθε αλγόριθµος. Στη συνέχεια, η σπουδαιότητα των αλγορίθµων συνδυάζεται
Διαβάστε περισσότεραΑλγόριθµοι και Πολυπλοκότητα
Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Φεβρουαρίου 0 / ένδρα Ενα δένδρο είναι
Διαβάστε περισσότεραΔομές Δεδομένων (Data Structures)
Δομές Δεδομένων (Data Structures) Στοίβες Ουρές Στοίβες: Βασικές Έννοιες. Ουρές: Βασικές Έννοιες. Βασικές Λειτουργίες. Παραδείγματα. Στοίβες Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή πρώτη
Διαβάστε περισσότεραΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS)
ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS) Ταχεία Αναζήτηση Σε πίνακα: δυαδική αναζήτηση (binary search) σε ταξινοµηµένο πίνακα O(log n) Σε δένδρο: αναζήτηση σε ισοζυγισµένο δένδρο O(log n) Σε λίστα: Μπορούµε
Διαβάστε περισσότεραΣύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης
Σύνοψη Προηγούμενου Λίστες (Lists) Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Στοίβες (Stacks) : στην κορυφή της στοίβας ( ) από την κορυφή της στοίβας ( ) Ουρές
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 21: Εισαγωγή σε Δενδρικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Εισαγωγή σε δενδρικές δομές δεδομένων, -Ορισμοί και πράξεις - Αναπαράσταση δενδρικών δομών δεδομένων
Διαβάστε περισσότεραΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research
ΑΛΓΟΡΙΘΜΟΙ ΜΕ C ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής CMOR Lab Computational Methodologies and Operations Research Δέντρα (5) Τ ένα δέντρο i ένας κόμβος στο επίπεδο k j ένας κόμβος στο επίπεδο k+1 } :
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 19/10/2017 Ανακεφαλαίωση:
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 4/11/2016 Ανακεφαλαίωση:
Διαβάστε περισσότερα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
Κεφάλαιο 2 Δοµές Δεδοµένων Ι Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 Δοµές Δεδοµένων Ι Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε
Διαβάστε περισσότεραΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 9-1
Σωροί Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθµος ταξινόµησης HeapSort Παραλλαγές Σωρών ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι
Διαβάστε περισσότεραΔιάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες)
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 15-1 Περιεχόμενο
Διαβάστε περισσότεραΔοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης
Δοµές Δεδοµένων 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων Ε. Μαρκάκης Περίληψη Quicksort Χαρακτηριστικά επιδόσεων Μη αναδροµική υλοποίηση Δέντρα Μαθηµατικές ιδιότητες Δοµές Δεδοµένων 11-2
Διαβάστε περισσότεραΔυαδικά Δένδρα Αναζήτησης, Δένδρα AVL
Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL Υλικό από τις σηµειώσεις Ν. Παπασπύρου, 2006 Δέντρα δυαδικής αναζήτησης Δενδρικές δοµές δεδοµένων στις οποίες Όλα τα στοιχεία στο αριστερό υποδέντρο της ρίζας είναι
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ100) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραΚάθε στοιχείο που γίνεται αντιληπτό με μία από τις πέντε αισθήσεις μας
Κάθε στοιχείο που γίνεται αντιληπτό με μία από τις πέντε αισθήσεις μας είναι ένα δεδομένο. Τα δεδομένα μπορούν να αναπαραστήσουν αφαιρετικά την πραγματικότητα δηλαδή να μας δείχνουν μία απλοποιημένη όψη
Διαβάστε περισσότεραΔιάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων
Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Ορισμοί και πράξεις Αναπαράσταση δενδρικών δομών
Διαβάστε περισσότερα