CASE STUDY 1: #include <stdio.h> #include <conio.h> #include <stdlib> #include <string.h> #define N 10
|
|
- Ευρυδίκη Χατζηιωάννου
- 8 χρόνια πριν
- Προβολές:
Transcript
1 CASE STUDY 1: Πρόβληµα Να γραφεί ένα menu-driven πρόγραµµα για τη διαχείριση µίας ουράς πελατών που καταφθάνουν σε µία τράπεζα και περιµένουν να εξυπηρετηθούν. Το πρόγραµµα θα πρέπει να εισάγει ένα νέο πελάτη στο τέλος της ουράς, να εµφανίζει τον πελάτη που είναι πρώτος στην ουρά και να τον διαγράφει εφόσον έχει εξυπηρετηθεί. Πριν τον τερµατισµό του προγράµµατος, θα πρέπει να εµφανίζεται το πλήθος των πελατών που παραµένουν στην ουρά. Προκαταρκτική σχεδίαση Θα χρησιµοποιήσουµε τη δοµή της ουράς- η οποία θα υλοποιείται µε πίνακα και τις βασικές λειτουργίες εισαγωγής (enqueue) και εξαγωγής (dequeue) στοιχείου. Επίσης, θα ορίσουµε µία δοµή Pelatis, όπου θα αποθηκεύονται τα στοιχεία του πελάτη και θα αναπτύξουµε τις συναρτήσεις readpelatis (για το διάβασµα των στοιχείων ενός πελάτη), writepelatis (για την εµφάνιση των στοιχείων ενός πελάτη) και countpelates (για την εµφάνιση του πλήθους των πελατών που παραµένουν στην ουρά. Αλγόριθµος 1. Αρχικοποίηση της ουράς 2. Επανάλαβε 3. Εµφάνισε το µενού 4. ιάβασε την επιλογή 5. Εκτέλεσε τη λειτουργία που επιλέχθηκε µέχρι να επιλεγεί έξοδος από το µενού 6. Εµφάνισε το πλήθος των πελατών που παραµένουν στην ουρά Πρόγραµµα #include <stdio.h> #include <conio.h> #include <stdlib> #include <string.h> #define N 10
2 struct Pelatis int accno; char name[20]; ; void enqueue(struct Pelatis q[],int *r,struct Pelatis pel); void dequeue(struct Pelatis q[],int *f,int r); struct Pelatis readpelatis(); void writepelatis(struct Pelatis q[],int f, int r); void countpelates(int f, int r); main() int i, front, rear, choice, telos = 0; struct Pelatis q[n], pel; front = -1; rear = -1; do clrscr(); printf(" Menu\n"); printf(" ====\n"); printf("1.customer Arrival\n"); printf("2.customer Departure\n"); printf("3.first customer retrieval\n"); printf("4.exit\n"); printf("\nchoice?"); scanf("%d",&choice); switch (choice) case 1: pel=readpelatis(); enqueue(q,&rear,pel); break;
3 case 2: dequeue(q,&front,rear); break; case 3: writepelatis(q,front,rear); break; case 4: telos = 1; break; while (telos == 0); countpelates(front,rear); return 0; void enqueue(struct Pelatis q[],int *r,struct Pelatis pel) if ((*r) == N-1) printf("queue is full..."); getch(); q[++(*r)]=pel; void dequeue(struct Pelatis q[],int *f,int r) struct Pelatis pel; if ((*f) == r) printf("queue is empty...\n"); pel = q[++(*f)]; printf("diagrafi pelati %d ",pel.accno); getch();
4 struct Pelatis readpelatis() struct Pelatis pel; printf("dose ar. log.:"); scanf("%d",&pel.accno); printf("dose onoma pelati:"); scanf("%s",pel.name); return pel; void writepelatis(struct Pelatis q[],int f, int r) if (f == r) printf("queue is empty..."); printf("protos stin oura:\n"); printf("ar.log. = %d \n", q[++f].accno); printf("onoma = %s \n",q[f].name); getch(); void countpelates(int f, int r) int i, count = 0; if (f == r) printf("queue is empty..."); for (i=f+1; i<=r; i++) count++; printf("plithos pelaton stin oyra: %d\n",count); getch();
5 Έλεγχος προγράµµατος
6
7 CASE STUDY 2: Πρόβληµα Να γραφεί πρόγραµµα που να διαβάζει αριθµητικές παραστάσεις σε Επιθεµατική µορφή (Reverse Polish Notation) και να υπολογίζει την τιµή τους. Σε µία αριθµητική παράσταση σε RPN δεν υπάρχουν παρενθέσεις και οι τελεστές έπονται των τελεσταίων. Για παράδειγµα, η παράσταση σε RPN γίνεται * Επίσης, η παράσταση γίνεται * * - 2 * ( ) 8 * ( ) 9 * ( ) Προκαταρκτική σχεδίαση O υπολογισµός της παράστασης θα γίνεται µε χρήση µίας στοίβας υλοποιείται µε πίνακα. Η λειτουργία του προγράµµατος θα έχει ως εξής: η οποία θα Η παράσταση θα πληκτρολογείται σε µία γραµµή και το τέλος της θα ολοκληρώνεται µε το ENTER. Κάθε φορά που θα πληκτρολογείται ένας τελεσταίος θα τοποθετείται στην στοίβα. Κάθε φορά που θα πληκτρολογείται ένας τελεστής, θα εξάγονται δύο τελεσταίοι από την κορυφή της στοίβας, θα γίνεται η ανάλογη αριθµητική πράξη και το αποτέλεσµα θα τοποθετείται πίσω στη στοίβα. Θα χρησιµοποιήσουµε όπως προαναφέρθηκε - τη δοµή της στοίβας και τις βασικές λειτουργίες για την ώθηση (push) στοιχείου στη στοίβα και την απώθηση (pop) στοιχείου από τη στοίβα. Όταν ολοκληρωθεί η επεξεργασία όλης της παράστασης, το τελικό αποτέλεσµα είναι το µοναδικό που βρίσκεται στη στοίβα (θέση 0 του πίνακα). Αλγόριθµος 1. Αρχικοποίηση της στοίβας 2. Επανάλαβε 3. ιάβασε τον επόµενο χαρακτήρα της παράστασης
8 4. Αν είναι τελεστής 5. Εξαγωγή δύο στοιχείων από την κορυφή της στοίβας 6. Εκτέλεση της αντίστοιχης αριθµητικής πράξης 7. Τοποθέτηση του αποτελέσµατος πίσω στη στοίβα 8. Αν είναι τελεσταίος 9. Τοποθέτηση του αριθµού στην κορυφή της στοίβας µέχρι να τελειώσει η παράσταση 10.. Εµφάνισε το αποτέλεσµα της παράστασης Πρόγραµµα #include <stdio.h> #include <conio.h> #include <stdlib> #define N 10 void push(int stack[],int *t,int obj); int pop(int stack[],int *t); main() int stack[n], top; int i, num, obj1, obj2, res; char expr[100]; clrscr(); top = -1; printf("input expression, ENTER to quit:\n"); gets(expr); i = 0; while (expr[i]!='\0') if ( expr[i]== '+' expr[i]== '-' expr[i]== '*' expr[i]== '/') obj1 = pop(stack,&top); obj2 = pop(stack,&top); if (expr[i] == '+') res = obj2 + obj1;
9 if (expr[i] == '-') res = obj2 - obj1; if (expr[i] == '*') res = obj2 * obj1; res = obj2 / obj1; push(stack,&top,res); num = expr[i] - '0'; push(stack,&top,num); i++; if (top == 0) res = pop(stack,&top); printf("\nthe result of the expression is %d\n",res); printf("error in expression - too many operands."); getch(); return 0; void push(int stack[],int *t,int obj) if ((*t) == N-1) printf("stack overflow...\n"); getch(); abort(); stack[++(*t)] = obj;
10 int pop(int stack[],int *t) int r; if ((*t) < 0) printf("stack empty...\n"); printf("error in expression.\n"); getch(); abort(); r = stack[(*t)--]; return r; Έλεγχος προγράµµατος Θα τρέξουµε το πρόγραµµα δίνοντας σαν είσοδο δεδοµένων τις προηγούµενες παραστάσεις, οι οποίες έχουν ελεγθεί για την ορθότητά τους. Τα αποτελέσµατα που αναµένουµε είναι για την παράσταση * αποτέλεσµα 16 και για την παράσταση * * - αποτέλεσµα 10.
11 CASE STUDY 3: Πρόβληµα Να γραφεί πρόγραµµα που να διαβάζει αριθµητικές παραστάσεις και να ελέγχει αν είναι σωστές ως προς τη χρήση των παρενθέσεων. Για παράδειγµα, η παράσταση (a + b) * (c + d) είναι σωστή, ενώ η παράσταση (a + b) * (c + d είναι λάθος, γιατί έχει περισσότερες παρενθέσεις που ανοίγουν (αριστερές) και η παράσταση (a + b) * c + d) είναι επίσης λάθος, γιατί έχει περισσότερες παρενθέσεις που κλείνουν (δεξιές). Προκαταρκτική σχεδίαση Η εξακρίβωση για την ορθότητα της παράστασης θα γίνεται µε χρήση µίας στοίβας η οποία θα υλοποιείται µε συνδεδεµένη λίστα. Ο λόγος που επιλέγουµε συνδεδεµένη λίστα είναι γιατί αν ορίσουµε τη στοίβα σαν ένα πίνακα χαρακτήρων, θα εκληφθεί ως αλφαριθµητικό και αυτό δυσχεραίνει την επεξεργασία του. Η λειτουργία του προγράµµατος θα έχει ως εξής: Η παράσταση θα πληκτρολογείται σε µία γραµµή και το τέλος της θα ολοκληρώνεται µε το ENTER. Κάθε φορά που θα διαβάζεται µία αριστερή παρένθεση θα τοποθετείται στη στοίβα. Κάθε φορά που θα διαβάζεται µία δεξιά παρένθεση, θα εξάγεται µία αριστερή παρένθεση από την κορυφή της στοίβας. Θα χρησιµοποιήσουµε όπως προαναφέρθηκε - τη δοµή της στοίβας και τις βασικές λειτουργίες για την ώθηση (push) στοιχείου στη στοίβα και την απώθηση (pop) στοιχείου από τη στοίβα. Όταν ολοκληρωθεί η επεξεργασία όλης της παράστασης, η στοίβα θα πρέπει να είναι άδεια για να έχουµε σωστό αποτέλεσµα.
12 Αλγόριθµος 1. Αρχικοποίηση της στοίβας 2. Επανάλαβε 3. ιάβασε τον επόµενο χαρακτήρα της παράστασης 4. Αν είναι αριστερή παρένθεση 5. Τοποθέτηση της παρένθεσης στην κορυφή της στοίβας 6. Αν είναι δεξιά παρένθεση 7. Αν η στοίβα δεν είναι άδεια 8. Εξαγωγή µίας αριστερής παρένθεσης από την κορυφή της στοίβας 9. Αν η στοίβα είναι άδεια 10. Τερµατισµός επεξεργασίας, η παράσταση είναι λάθος µέχρι να τελειώσει η παράσταση ή να διαπιστωθεί ότι είναι λάθος 11. Αν η στοίβα είναι άδεια 12. Αν δεν τέλειωσε το διάβασµα της παράστασης 13. Εµφάνισε λάθος, περισσότερες δεξιές παρενθέσεις 14. Αν τέλειωσε το διάβασµα της παράστασης 15. Εµφάνισε σωστή παράσταση 16. Αν η στοίβα δεν είναι άδεια 17. Εµφάνισε λάθος, περισσότερες αριστερές παρενθέσεις Πρόγραµµα #include <stdio.h> #include <conio.h> #include <stdlib> struct node int data; struct node *next; ; typedef struct node * PTR; PTR push(char obj, PTR t); PTR pop(ptr t, char *obj);
13 main() PTR top; char expr[30], ch; int i, error; clrscr(); top = NULL; printf("input expression, ENTER to quit:\n"); gets(expr); error = 0; i = 0; while (expr[i]!='\0' && error == 0) switch (expr[i]) case '(': top = push(expr[i],top); break; case ')': if (top == NULL) error = 1; top = pop(top,&ch); break; i++; if (top == NULL) if (error == 0) printf(" ->Correct expression."); printf(" ->Error. Too many right parentheses."); printf(" ->Error. Too many left parentheses."); getch(); return 0;
14 PTR push(char obj, PTR t) PTR newnode; newnode = malloc(sizeof(struct node)); newnode->data = obj; newnode->next = t; t = newnode; return t; PTR pop(ptr t, char *obj) PTR p; if (t == NULL) printf("stack empty.\n"); getch(); p = t; t = t->next; *obj = p->data; free(p); return t; Έλεγχος προγράµµατος Θα τρέξουµε το πρόγραµµα δίνοντας σαν είσοδο δεδοµένων τις προηγούµενες παραστάσεις όπου τα αναµενόµενα αποτελέσµατα είναι (a + b) * (c + d) =>σωστή παράσταση (a + b) * (c + d =>λάθος, περισσότερες αριστερές παρενθέσεις (a + b) * c + d) =>λάθος, περισσότερες δεξιές παρενθέσεις
15
16 CASE STUDY 4: Πρόβληµα Να γραφεί πρόγραµµα που να αναζητά σε ένα πλήθος πελατών µιας µεγάλης ασφαλιστικής εταιρίας, τα στοιχεία κάποιου συγκεκριµένου πελάτη, τα οποία είναι Αριθµός µητρώου Όνοµα Τηλέφωνο Οι πληροφορίες είναι καταχωρηµένες σε αύξουσα σειρά, βάσει των αριθµών µητρώου. Επειδή η εταρία είναι αρκετά µεγάλη, δεν ενδείκνυται να εφαρµόσουµε σειριακή αναζήτηση. Να γραφεί ένας αλγόριθµος αναζήτησης που εκµεταλεύεται το γεγονός ότι οι πελάτες είναι ταξινοµηµένοι. Προκαταρκτική σχεδίαση Ο αλγόριθµος που αναζητούµε είναι η υαδική Αναζήτηση. Θα υποθέσουµε ότι τα στοιχεία των πελατών αποθηκεύονται σε ένα πίνακα, ταξινοµηµένα ως προς τους αριθµούς µητρώου. Το πλεονέκτηµα της µεθόδου αυτής έγκειται στο γεγονός ότι κάθε φορά που εξετάζουµε ένα στοιχείο, τα µισά στοιχεία µπορούν να απορριφθούν και να συνεχίσουµε την αναζήτηση µε το µισό πίνακα.. Για παράδειγµα, αν το µέγεθος του πίνακα είναι 1000, µετά την πρώτη εξέταση πολυπλοκότητα του αλγορίθµου της υαδικής Αναζήτησης είναι Ο(log 2 N). Για την αποθήκευση των πληροφοριών ενός πελάτη θα χρησιµοποιηθεί µια δοµή (struct) µε τρία πεδία. Ο πίνακας θα είναι πίνακας δοµών και θα παίρνει τα δεδοµένα εισόδου στη δήλωσή του. Για να απλουστεύσουµε τη διαδικασία, θα ορίσουµε ένα µικρό πίνακα 10 θέσεων. Ο αλγόριθµος της υαδικής Αναζήτησης που θα εφαρµοστεί είναι αναδροµικός. Χρησιµοποιούνται τρεις µεταβλητές left, right και mid που αντιστοιχούν στην πρώτη, στην τελευταία και στη µεσαία θέση του πίνακα. Ο τύπος υπολογισµού της µέσης του πίνακα είναι mid = (left + right) / 2
17 Αλγόριθµος 1. Υπολόγισε τη µέση του πίνακα 2. Αν η τελευταία θέση είναι µικρότερη της πρώτης τότε 3. Επέστρεψε την τιµή Αν το στοιχείο που αναζητούµε βρίσκεται στη µεσαία θέση τότε 5. Επέστρεψε τη µεσαία θέση 6. Αν το στοιχείο που αναζητούµε είναι µικρότερο από το στοιχείο της µεσαίας θέσης 7. Εξετάζουµε τον υποπίνακα µε άκρα left..mid-1 8. Αν το στοιχείο που αναζητούµε είναι µεγαλύτερο από το στοιχείο της µεσαίας θέσης 9. Εξετάζουµε τον υποπίνακα µε άκρα mid+1..right 10. Αν η τιµή που επιστράφηκε είναι Εµφανίζουµε µήνυµα ανεπιτυχούς αναζήτησης 12. Αν η τιµή είναι διαφορετική του Εµφανιζουµε τα στοιχεία του πελάτη Πρόγραµµα #include <stdio.h> #include <conio.h> #define N 10 struct persondetails int am; char onoma[20]; char tel[10]; ; typedef struct persondetails Person; int binarysearch(int left, int right, Person p[], int x);
18 main() Person p[n] = 100, "ANAGNOSTOU", " ", 200, "BLAXAKIS", " ", 300, "GEORGIOU", " ", 400, "DIMITRIADIS", " ", 500, "EYAGGELOPOULOS", " ", 600, "ZHSH", " ", 700, "IAKOVIDOU", " ", 800, "KOSTA", " ", 900, "LAMPIRIS", " ", 999, "NIKOLAOU", " "; int x, pos; clrscr(); printf("dose am gia anazitisi:"); scanf("%i",&x); pos = binarysearch(0,n-1,p,x); printf("\nbinary search:\n"); if (pos == -1) printf("the number was not found!\n"); printf("the number was found at position %i\n",pos); printf("a.m.: %d \n", p[pos].am); printf("onoma: %s \n", p[pos].onoma); printf("tel.: %s \n", p[pos].tel); getch(); return 0; int binarysearch(int left, int right, Person p[], int x) int mid, pos; if (left > right) pos = -1;
19 mid = (left + right) / 2; if (p[mid].am == x) pos = mid; if (x < p[mid].am) pos = binarysearch(left,mid-1,p,x); pos = binarysearch(mid+1,right,p,x); return pos; Έλεγχος προγράµµατος
20 CASE STUDY 5: Πρόβληµα Να γραφεί ένα menu-driven πρόγραµµα για τη διαχείριση ενός υαδικού ένδρου Αναζήτησης, στους κόµβους του οποίου βρίσκονται αποθηκευµένες πληροφορίες πελατών µιας µεγάλης ασφαλιστικής εταιρίας, τα οποία είναι Αριθµός µητρώου Όνοµα Τηλέφωνο Οι πληροφορίες τροφοδοτούνται στο δένδρο από ένα πίνακα. Ο σκοπός της εφαρµογής είναι να µπορούµε να εµφανιζουµε τις πληροφορίες των πελατών σε αύξουσα σειρά ως προς τον αριθµό µητρώου και να εφαρµόζουµε επιλεκτικές αναζητήσεις δίνοντας για παράδειγµα τον αριθµό µητρώου κάποιου πελάτη. Προκαταρκτική σχεδίαση Θα υποθέσουµε ότι τα στοιχεία των πελατών αποθηκεύονται σε ένα πίνακα, χωρίς καµία συγκεκριµένη σειρά. ιαβάζονται µε τη σειρά από τον πίνακα και τοποθετούνται στο υαδικό ένδρο Αναζήτησης µε τη συνάρτηση insert_node. Ο πίνακας θα είναι πίνακας δοµών και θα παίρνει τα δεδοµένα εισόδου στη δήλωσή του. Για να απλουστεύσουµε τη διαδικασία, θα ορίσουµε ένα µικρό πίνακα 10 θέσεων. Σύµφωνα µε τα δεδοµένα που ορίζονται στο πρόγραµµα, η σειρά των πελατών όπως τοποθετούνται στο δένδρο είναι, αναφέροντας µόνον τους αριθµούς µητρώου: 500, 300, 700, 200, 400, 600, 900, 100, 800, 999 Eποµένως, το αντίστοιχο υαδικό ένδρο που θα προκύψει είναι:
21 Επίσης, στο πρόγραµµα χρησιµοποιούνται τρεις αναδροµικές συναρτήσεις για την επίσκεψη των κόµβων του δένδρου. Αυτές είναι οι preorder_traversal inorder_traversal postorder_traversal Η συνάρτηση που παρουσιάζει περισσότερο ενδιαφέρον είναι η inorder_traversal γιατί εµφανίζει τα περιεχόµενα του δένδρου ταξινοµηµένα. Τέλος, χρησιµοποιείται ακόµη µία αναδροµική συνάρτηση, η find_node για την αναζήτηση κάποιου συγκεκριµένου πελάτη στο δένδρο. Αλγόριθµος 1. Τοποθέτησε τα στοιχεία των πελατών από τον πίνακα στο δένδρο 2. Επανάλαβε 3. Εµφάνισε το µενού 4. ώσε µία επιλογή 5. Εκτέλεσε τη λειτουργία σύµφωνα µε την επιλογή Μέχρι να επιλεγεί έξοδος από το µενού Πρόγραµµα #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> #define N 10 struct persondetails int am; char onoma[20]; char tel[10]; ; typedef struct persondetails Person;
22 struct treenode Person data; struct treenode *left; struct treenode *right; ; typedef struct treenode * PTR; void insert_node(ptr *pt, Person p); void preorder_traversal(ptr t); void inorder_traversal(ptr t); void postorder_traversal(ptr t); void find_node(ptr t, int n, int i); main() Person p[n]= 500, "EYAGGELOPOULOS ", " ", 300, "GEORGIOU ", " ", 700, "IAKOVIDOU ", " ", 200, "BLAXAKIS ", " ", 400, "DIMITRIADIS ", " ", 600, "ZHSH ", " ", 900, "LAMPIRIS ", " ", 100, "ANAGNOSTOU ", " ", 800, "KOSTA ", " ", 999, "NIKOLAOU ", " "; int choice, armit, i; PTR bt; clrscr(); bt = NULL; for(i=0; i<n; i++) insert_node(&bt,p[i]); i = 0; do clrscr();
23 printf(" M E N U\n"); printf(" =======\n"); printf("1. Preorder traversal\n"); printf("2. Inorder traversal\n"); printf("3. Postorder traversal\n"); printf("4. Tree search\n"); printf("5. EXIT\n"); printf("\n Choice?"); scanf("%d",&choice); switch (choice) case 1: printf("\n"); printf("pre-order:\n"); preorder_traversal(bt); break; case 2: printf("\n"); printf("in-order:\n"); inorder_traversal(bt); break; case 3: printf("\n"); printf("post-order:\n"); postorder_traversal(bt); break; case 4: printf("dose am gia anazitisi:"); scanf("%d",&armit); find_node(bt,armit,i); break; case 5: printf("end of program...press ENTER"); break; getch(); while (choice!= 5); return 0;
24 void insert_node(ptr *pt, Person x) PTR t; t = *pt; if (t==null) t = malloc(sizeof (struct treenode)); t->data = x; t->left = NULL; t->right = NULL; if (x.am < t->data.am) insert_node(&(t->left),x); insert_node(&(t->right),x); *pt = t; void preorder_traversal(ptr t) if (t!=null) printf(" %d ", t->data.am); printf(" %s ",t->data.onoma); printf(" %s \n",t->data.tel); printf("\n"); preorder_traversal(t->left); preorder_traversal(t->right); void inorder_traversal(ptr t) if (t!=null) inorder_traversal(t->left); printf(" %d ", t->data.am); printf(" %s ",t->data.onoma);
25 printf(" %s \n",t->data.tel); printf("\n"); inorder_traversal(t->right); void postorder_traversal(ptr t) if (t!=null) postorder_traversal(t->left); postorder_traversal(t->right); printf(" %d ", t->data.am); printf(" %s ",t->data.onoma); printf(" %s \n",t->data.tel); printf("\n"); void find_node(ptr t, int n, int i) i++; if (t==null) printf("\nden vrethike.\n"); printf("plithos anazitiseon: %d \n",i); if (t->data.am == n) printf("\nvrethike!!!\n"); printf("plithos anazitiseon: %d \n",i); printf(" %d \n", t->data.am); printf(" %s \n",t->data.onoma); printf(" %s \n",t->data.tel); printf("\n"); if (n < t->data.am) find_node(t->left,n,i);
26 find_node(t->right,n,i); Έλεγχος προγράµµατος
27
ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ (Σηµειώσεις Εργαστηρίου)
TEΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ (Σηµειώσεις Εργαστηρίου) Ευάγγελος Γ. Ούτσιος Σέρρες 2004 2 ΠΕΡΙΕΧΟΜΕΝΑ
ΕΡΓΑΣΤΗΡΙΟ 5 ΣΗΜΕΙΩΣΕΙΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2017-2018 ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Ουρές ΕΡΓΑΣΤΗΡΙΟ 5 ΣΗΜΕΙΩΣΕΙΣ Μια ουρά αποτελεί μια δομή δεδομένων στη λογική του First-in
Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)
Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού
Σημειώσεις ένατης εβδομάδας
Σημειώσεις ένατης εβδομάδας Η δομή της ουράς (queue), είναι και αυτή γραμμική δομή, όπως η λίστα και η στοίβα. Το βασικό χαρακτηριστικό της είναι ότι, όπως και στις φυσικές ουρές, εξυπηρετείται πρώτος,
υναµικές οµές εδοµένων (συν.) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα:
υναµικές οµές εδοµένων (συν.) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ταξινοµηµένες Λίστες µε δυναµική δέσµευση µνήµης Αναδροµκές συναρτήσεις ΕΠΛ 12 Αρχές Προγραµµατισµού ΙΙ 1 Λίστες
(Εργασίες Μελέτες περιπτώσεων)
Τμήμα Μηχανικών Πληροφορικής Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Head node Data Next node Data Next Δεδομένο 2 Δεδομένο 1 Δομές Δεδομένων (Εργασίες Μελέτες περιπτώσεων) Δρ. Πάρις Μαστοροκώστας Καθηγητής
Δομές δεδομένων (2) Αλγόριθμοι
Δομές δεδομένων (2) Αλγόριθμοι Παράγωγοι τύποι (struct) σύνοψη προηγουμένων Πίνακες: πολλές μεταβλητές ίδιου τύπου Παράγωγοι τύποι ή Δομές (struct): ομαδοποίηση μεταβλητών διαφορετικού τύπου struct Student
ΠΛΗ111. Ανοιξη Μάθηµα 5 ο. Ουρά. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ οµηµένος Προγραµµατισµός Ανοιξη 5 Μάθηµα 5 ο Ουρά Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση Αφηρηµένος Τύπος εδοµένων Ουρά Υλοποίηση µε Κυκλικό Πίνακα Υλοποίηση
C: Από τη Θεωρία στην Εφαρμογή
Δρ. Γ. Σ. Τσελίκης Δρ. Ν. Δ. Τσελίκας C: Από τη Θεωρία στην Εφαρμογή Ενδεικτικές Ασκήσεις από το Βιβλίο C: Από τη Θεωρία στην Εφαρμογή (Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας) Ενδεικτικές Ασκήσεις του Βιβλίου Ε.Α.1
ΠΛΗ111. Ανοιξη Μάθηµα 4 ο. Στοίβα. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 4 ο Στοίβα Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση Αφηρηµένος Τύπος εδοµένων Στοίβα Υλοποίηση µε Πίνακα Υλοποίηση
Η γλώσσα προγραμματισμού C Συνδεδεμένες Λίστες
Η γλώσσα προγραμματισμού C Συνδεδεμένες Λίστες Τι είναι οι συνδεδεμένες λίστες (linked lists) Μια Συνδεδεμένη Λίστα (Σ.Λ.) είναι μια διάταξη από κόμβους που μπορούμε να τους διαχειριστούμε δυναμικά. Κάθε
Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 22: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης - Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου
ΣΤΟΙΒΕΣ (stacks) Σχήµα: Λειτουργία Στοίβας
ΣΤΟΙΒΕΣ (stacks) Η στοίβα είναι µια συλλογή δεδοµένων µε γραµµική διάταξη στην οποία όλες οι εισαγωγές και οι διαγραφές γίνονται στο ένα άκρο που λέγεται κορυφή (top) της στοίβας Σχήµα: Λειτουργία Στοίβας
Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εύρεση, εισαγωγή, διαγραφή) - Σύγκριση Συνδεδεμένων Λιστών με Πίνακες
Δομές Δεδομένων. Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες
Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
ιαφάνειες παρουσίασης #11
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης
υναµική έσµευση Μνήµης (συν.) ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 Εφαρµογή
υναµική έσµευση Μνήµης (συν.) Στην ενότητα αυτή θα µελετηθούν: Μια εφαρµογή συνδεδεµένων λιστών ιπλά συνδεδεµένες Λίστες ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Εφαρµογή Ζητούµενο: Πρόγραµµα που παίρνει σαν
Προηγµένες Υπηρεσίες Τηλεκπαίδευσης στο ΤΕΙ Σερρών
Προηγµένες Υπηρεσίες Τηλεκπαίδευσης στο ΤΕΙ Σερρών Το εκπαιδευτικό υλικό που ακολουθεί αναπτύχθηκε στα πλαίσια του έργου «Προηγµένες Υπηρεσίες Τηλεκπαίδευσης στο Τ.Ε.Ι. Σερρών», του Μέτρου «Εισαγωγή και
Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 10: Λίστες Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εύρεση, εισαγωγή, διαγραφή) Σύγκριση Συνδεδεμένων Λιστών με Πίνακες
Σημειώσεις όγδοης εβδομάδας
Σημειώσεις όγδοης εβδομάδας Για να την δημιουργία σειριακών αρχείων, χρησιμοποιείται η fopen(filename, w ). Το αρχείο δημιουργείται στον ίδιο φάκελο που τρέχει το εκτελέσιμο πρόγραμμα. Το παρακάτω πρόγραμμα,
Αλγόριθμοι & Δομές Δεδομένων
ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΣΧΟΛΗ ΤΜΗΜΑ Αλγόριθμοι & Δομές Δεδομένων Ευάγγελος Γ. Ούτσιος (BSc, MSc) Καθηγητής Εφαρμογών Τομέας Υπολογιστικών τεχνικών και Συστημάτων Σεπτέμβριος
Δομές Δεδομένων. Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή. Καθηγήτρια Μαρία Σατρατζέμη
Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #5
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #5 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #5 2 Γενικά Στο Τετράδιο #5 του Εργαστηρίου θα ασχοληθούμε με πιο προχωρημένα θέματα υλοποίησης
ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ (Σηµειώσεις Θεωρίας)
TEΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ Ε ΟΜΕΝΩΝ (Σηµειώσεις Θεωρίας) Ευάγγελος Γ. Ούτσιος Σέρρες 2004 2 ΑΛΓΟΡΙΘΜΟΙ & ΟΜΕΣ
Υλοποίηση Λιστών. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
Υλοποίηση Λιστών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμές Απλά και Διπλά Συνδεδεμένες Λίστες Κυκλικές Απλά και Διπλά Συνδεδεμένες Λίστες Τεχνικές Μείωσης Μνήμης ΕΠΛ 231 Δομές
ΠΛΗ111. Ανοιξη Μάθηµα 8 ο. Αναζήτηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 8 ο Αναζήτηση Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Αναζήτηση Αναζήτηση σε ιατεταγµένο Πίνακα υαδική Αναζήτηση Κατακερµατισµός
Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 7: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου Διδάσκων:
ΠΛΗ111. Ανοιξη 2005. Μάθηµα 3 ο. Συνδεδεµένες Λίστες. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 3 ο Συνδεδεµένες Λίστες Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση ΟΑΤ λίστα Ακολουθιακή λίστα Συνδεδεµένη λίστα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 23: οµές εδοµένων και Αλγόριθµοι Ενδιάµεση Εξέταση Ηµεροµηνία : ευτέρα, 3 Νοεµβρίου 2008 ιάρκεια : 2.00-4.00 ιδάσκουσα : Άννα Φιλίππου Ονοµατεπώνυµο: ΣΚΕΛΕΤΟΙ
ΠΛΗ111. Ανοιξη 2005. Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 7 ο έντρο Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης έντρο Ορισµός Υλοποίηση µε Πίνακα Υλοποίηση µε είκτες υαδικό έντρο
Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες
ΕΠΛ232: Εργαστήριο 2
ΕΠΛ232: Εργαστήριο 2 Παράδειγμα σε Στοίβες 1 Υπολογισμός Αριθμητικών Παραστάσεων - Πολωνικός Συμβολισμός A + (B * C) A + (BC * ) A(BC *) + ABC * + Ενδοθεματική μορφή Μεταθεματική μορφή Οι κανόνες που διέπουν
Κατ οίκον Εργασία 2 Σκελετοί Λύσεων
Κατ οίκον Εργασία 2 Σκελετοί Λύσεων Άσκηση 1 Ο ζητούμενος ΑΤΔ μπορεί να υλοποιηθεί ως μια ακολουθία από στοιχεία τύπου window συνοδευόμενη από τις πράξεις: MakeNewWindow(L,w) Destroy(L,w) SwitchTo(L,w)
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδηµαϊκό έτος ΑΣΚΗΣΗ #5 Προτεινόµενη λύση
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδηµαϊκό έτος 2003-2004 ΑΣΚΗΣΗ #5 Προτεινόµενη λύση Θέµα 1 /* Προγραµµατιστής : Ηµεροµηνία συγγραφής : Λειτουργία Προγράµµατος : Πρόγραµµα για την αποθήκευση και ανάκτηση βαθµολογιών
Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Β Περιόδου 2015 (8/9/2015) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................
Διάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες)
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 15-1 Περιεχόμενο
υναµικές οµές εδοµένων
υναµικές οµές εδοµένων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: υναµικές οµές εδοµένων Γενικά υναµική έσµευση Μνήµης οµή τύπου structure αυτοαναφορικές δοµές Η δήλωση typedef στη C Αναπαράσταση
Φροντιστήριο 4 Σκελετοί Λύσεων
Φροντιστήριο 4 Σκελετοί Λύσεων 1. Ο ζητούμενος ΑΤΔ μπορεί να υλοποιηθεί ως εξής: (i) Διαδοχική χορήγηση μνήμης Υποθέτουμε ότι οι λίστες μας έχουν μέγιστο μέγεθος max και χρησιμοποιούμε τη δομή type elements[max];
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Σημειώσεις Θεωρίας)
TEΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Σημειώσεις Θεωρίας) Ευάγγελος Γ. Ούτσιος Σέρρες 2015 2 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε
Προγραμματισμός Δομές Δεδομένων
Προγραμματισμός Δομές Δεδομένων Προγραμματισμός Δομές Δεδομένων (Data Structures) Καινούργιοι τύποι δεδομένων που αποτελούνται από την ομαδοποίηση υπαρχόντων τύπων δεδομένων Ομαδοποίηση πληροφορίας που
Δομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 14 Στοίβες 1 / 14 Στοίβες Η στοίβα είναι μια ειδική περίπτωση γραμμικής λίστας στην οποία οι εισαγωγές
Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες)
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 13-1 Περιεχόμενο
Διάλεξη 22η: Επιπλέον στοιχεία της C
Διάλεξη 22η: Επιπλέον στοιχεία της C Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Extra CS100, 2018-2019 1 / 11 Οργάνωση του κώδικα Ένα πρόγραμμα
Κατ οίκον Εργασία 3 Σκελετοί Λύσεων
Άσκηση 1 Χρησιµοποιούµε τη δοµή Κατ οίκον Εργασία 3 Σκελετοί Λύσεων typedef struct Node int data; struct node *lchild; struct node *rbro; node; και υποθέτουµε πως ένα τυχαίο δένδρο είναι υλοποιηµένο ως
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών Ακαδηµαϊκό έτος 2010 2011, Χειµερινό εξάµηνο Ασκήσεις Επανάληψης Ενδιάµεσης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 3-4 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητες 3 & 4: ένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3ο: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΜΕΡΟΣ 2 ο : ΣΤΟΙΒΑ & ΟΥΡΑ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ ΣΤΟΙΒΑ 2 Μια στοίβα
Διάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες)
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Διάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl232
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις
Προγραμματισμός Ι. Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δομές Δεδομένων Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Δομές Δεδομένων Μια δομή δεδομένων είναι μια συλλογή δεδομένων με κάποιες
Κεφάλαιο 3 : εδοµένα. Πίνακες Στοίβα Ουρά Αναζήτηση Ταξινόµηση. Προγράµµατα
εδοµένα Αλγόριθµοι + οµές εδοµένων = Προγράµµατα Πίνακες Στοίβα Ουρά Αναζήτηση Ταξινόµηση Κεφάλαιο 3 : οµές εδοµένων και Αλγόριθµοι Στοίβα Στη δοµή δεδοµένων στοίβα τα δεδοµένα στοιβάζονται το ένα πάνω
Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 35: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών Ακαδηµαϊκό έτος 21 211, Χειµερινό εξάµηνο Όλες οι ασκήσεις να δακτυλογραφηθούν
Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2016 (1/2/2016) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................
Φροντιστήριο 4 Σκελετοί Λύσεων
Φροντιστήριο 4 Σκελετοί Λύσεων Άσκηση 1 Υποθέτουμε πως οι λίστες είναι υλοποιημένες χρησιμοποιώντας τις πιο κάτω δομές. typedef struct Node{ type data; struct node *next; node; node *top; list; Υλοποιούμε
Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα
Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Λίστες -Υλοποίηση ταξινομημένης λίστας με δυναμική δέσμευση μνήμης ΕΠΛ035
Δομές δεδομένων ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Δομές δεδομένων Διδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου
Στοίβες με Δυναμική Δέσμευση Μνήμης
ΕΠΛ 231 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ 10/02/10 Παύλος Αντωνίου Στοίβες με Δυναμική Δέσμευση Μνήμης Στοίβα: Στοίβα είναι μια λίστα που έχει ένα επιπλέον περιορισμό. Ο περιορισμός είναι ότι οι εισαγωγές
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Ενότητα 5 Δομές Ελέγχου Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Δομές Ελέγχου Οι Boehm και Jacopini απέδειξαν ότι οποιοσδήποτε αλγόριθμος
ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο)
ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο) Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου http://www.cs.ucy.ac.cy/courses/epl232 Το μάθημα αυτό
Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων
Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αφηρημένοι Τύποι Δεδομένων (ΑΤΔ) Οι ΑΤΔ Στοίβα και Ουρά Υλοποίηση των ΑΤΔ Στοίβα και Ουρά ΕΠΛ231 Δομές Δεδομένων
Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση ΑΤΔ με Συνδεδεμένες Λίστες -
Οι λίστες, χάνοντας τα πλεονεκτήματα των πινάκων, λύνουν προβλήματα που παρουσιάζουν οι πίνακες
Δομές δεδομένων Πίνακες Οι πίνακες είναι το πιο απλό «μέσο» αποθήκευσης ομοειδούς πληροφορίας. Χρησιμοποιούν ακριβώς όση μνήμη χρειάζεται για την αποθήκευση της πληροφορίας Επιτρέπουν την προσπέλαση άμεσα
Κατ οίκον Εργασία 3 Σκελετοί Λύσεων
Κατ οίκον Εργασία 3 Σκελετοί Λύσεων Άσκηση 1 (α) Έστω Α(n) και Κ(n) ο αριθμός των ακμών και ο αριθμός των κόμβων ενός αυστηρά δυαδικού δένδρου με n φύλλα. Θέλουμε να αποδείξουμε για κάθε n 1 την πρόταση
Συλλογές, Στοίβες και Ουρές
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση οποιουδήποτε στοιχείου. Συλλογή (bag) : Επιστρέφει
ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2017-2018 ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Εισαγωγή ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ Ένα πρόγραμμα σε C περιλαμβάνει μια ή περισσότερες συναρτήσεις
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 2 Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα
ΔυαδικάΔΕΝΔΡΑΑναζήτησης
ΔυαδικάΔΕΝΔΡΑΑναζήτησης Ρίζα (κόμβος που δεν έχει γονέα) πρόγονοι απόγονοι γονέας παιδιά έντρο είναι µία συλλογή από στοιχεία, που ονοµάζονται κόµβοι και συνδέονται µεταξύ τους µε τη βοήθεια ακµών αδέλφια
Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ισαγωγή στην πιστήμη των Υπολογιστών 2015-16 λγόριθμοι και ομές εδομένων (IΙ) (γράφοι και δένδρα) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης φηρημένες
Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ
Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Σκοπός του μαθήματος Σκοπός του παρόντος μαθήματος είναι να μάθετε να κάνετε εισαγωγή δεδομένων σε πίνακες και περαιτέρω επεξεργασία
ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί
Διάλεξη 10: Δομές Δεδομένων Ι (Στοίβες & Ουρές)
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 10: Δομές Δεδομένων Ι (Στοίβες & Ουρές) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 10-1 Περιεχόμενο Διάλεξης
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ EPL035: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ
ΠΝΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜ ΠΛΗΡΟΦΟΡΙΚΗΣ EPL035: ΔΟΜΣ ΔΔΟΜΝΩΝ ΚΙ ΛΓΟΡΙΘΜΟΙ ΗΜΡΟΜΗΝΙ: 14/11/2018 ΔΙΓΝΩΣΤΙΚΟ ΠΝΩ Σ ΔΝΔΡΙΚΣ ΔΟΜΣ ΚΙ ΓΡΦΟΥΣ Διάρκεια: 45 λεπτά Ονοματεπώνυμο:. ρ. Ταυτότητας:. ΒΘΜΟΛΟΓΙ ΣΚΗΣΗ ΒΘΜΟΣ
ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research
ΑΛΓΟΡΙΘΜΟΙ ΜΕ C ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής CMOR Lab Computational Methodologies and Operations Research Δέντρα (5) Τ ένα δέντρο i ένας κόμβος στο επίπεδο k j ένας κόμβος στο επίπεδο k+1 } :
Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΕΝΤΡΑ (TREES) B C D E F G H I J K L M
Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο Δέντρα Δυαδικά Δέντρα Δυαδικά Δέντρα Αναζήτησης (inary Search Trees) http://aetos.it.teithe.gr/~demos/teaching_r.html Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής
ΛΙΣΤΕΣ. Ορισμός ΑΤΔ Λίστα ΑΤΔ Ακολουθιακή Λίστα Διαχείριση Δεικτών και Λιστών στη C ΑΤΔ Συνδεδεμένη Λίστα. Εφαρμογές και Χρήση Λιστών
ΛΙΣΤΕΣ Ορισμός ΑΤΔ Λίστα ΑΤΔ Ακολουθιακή Λίστα Διαχείριση Δεικτών και Λιστών στη C ΑΤΔ Συνδεδεμένη Λίστα Υλοποίηση με δείκτες (pointers) Υλοποίηση με πίνακα Εφαρμογές και Χρήση Λιστών Λίστες (Lists) Δεδομένα
Αλγόριθμοι Αναζήτησης
Αλγόριθμοι Αναζήτησης ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις
Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε μία αναδρομική συνάρτηση που θα παίρνει ως παράμετρο ένα δείκτη στη ρίζα ενός δυαδικού δένδρου και θα επιστρέφει το βαθμό του
Δομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 16 Δένδρα (Trees) 1 / 42 Δένδρα (Trees) Ένα δένδρο είναι ένα συνδεδεμένο γράφημα χωρίς κύκλους Για κάθε
Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 9: Στοίβες:Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Υλοποίηση Στοιβών με Δυναμική Δέσμευση Μνήμης Εφαρμογή Στοιβών 1: Αναδρομικές συναρτήσεις Εφαρμογή
ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ
Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα ιοικητικής Επιστήµης & Τεχνολογίας ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Κεφάλαιο 9 οµές εδοµένων σε C Γιώργος Γιαγλής Περίληψη Κεφαλαίου 9 οµές εδοµένων υναµικές
Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων
Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Ορισμός
Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C
Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος
ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ
ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τον ορισμό, τη δήλωση και τη χρήση των χαρακτήρων, συνεπώς και των αλφαριθμητικών, της Γλώσσας
Εισαγωγή στον Προγραμματισμό (με. τη C)
Υποχρεωτικό Μάθημα 3 ου Εξαμήνου Χειμερινό Εξάμηνο Ακ. Έτους 20 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Εισαγωγή στον Προγραμματισμό (με τη C) Διδάσκουσα: Φατούρου Παναγιώτα faturu [at] csd.uoc.gr
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 6. Δυαδικά Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 18/11/2016 Εισαγωγή Τα
#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2017 (27/1/2017) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................
Δομές Δεδομένων & Αλγόριθμοι
- Πίνακες 1 Πίνακες Οι πίνακες έχουν σταθερό μέγεθος και τύπο δεδομένων. Βασικά πλεονεκτήματά τους είναι η απλότητα προγραμματισμού τους και η ταχύτητα. Ωστόσο δεν παρέχουν την ευελιξία η οποία απαιτείται
Δομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα
Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Δένδρα. Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών :
Δένδρα Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών : Ανάλυση αλγορίθμων (π.χ. δένδρα αναδρομής) Δομές δεδομένων (π.χ. δένδρα αναζήτησης) ακμή Κατηγορίες (αύξουσα
Αναδροµή. Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής
Αναδροµή Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής 1 Αναδροµή Βασική έννοια στα Μαθηµατικά και στην Πληροφορική.
Βασικές οµές εδοµένων
Βασικές οµές εδοµένων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αφηρηµένοι Τύποι εδοµένων Οι ΑΤ Στοίβα και Ουρά Υλοποίηση των ΑΤ Στοίβα και Ουρά µε ιαδοχική και υναµική Χορήγηση Μνήµης
3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή
3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ 3.1 ΑΝΑ ΡΟΜΗ 3.1.1 Εισαγωγή ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Αναδροµή είναι η µέθοδος κατά την οποία, σε µία γλώσσα προγραµµατισµού, µία διαδικασία ή συνάρτηση έχει την δυνατότητα
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 19/10/2017 Ανακεφαλαίωση:
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 4/11/2016 Ανακεφαλαίωση:
Δομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ100) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
ΣΤΟΙΒΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΗ ΙΔΙΟΤΗΤΑ ΤΗΣ ΣΤΟΙΒΑΣ. Το τελευταίο στοιχείο που εισήχθη θα εξαχθεί πρώτο. Άλλο όνομα L I F O (Last In First Out)
ΣΤΟΙΒΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΗ ΙΔΙΟΤΗΤΑ ΤΗΣ ΣΤΟΙΒΑΣ Το τελευταίο στοιχείο που εισήχθη θα εξαχθεί πρώτο. Άλλο όνομα L I F O (Last In First Out) Χρήσεις Στοίβας Καθημερινή Ζωή (όχι πάρα πολλές) Δίσκοι Τραπεζαρίας
Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 6: Διαχείριση Μνήμης & Δυναμικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυναμικές Δομές Δεδομένων Γενικά Δυναμική Δέσμευση/Αποδέσμευση Μνήμης Δομή τύπου structure
ΣΤΟΙΒΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΗ ΙΔΙΟΤΗΤΑ ΤΗΣ ΣΤΟΙΒΑΣ. Το τελευταίο στοιχείο που εισήχθη θα εξαχθεί πρώτο. Άλλο όνομα L I F O (Last In First Out)
ΣΤΟΙΒΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΗ ΙΔΙΟΤΗΤΑ ΤΗΣ ΣΤΟΙΒΑΣ Το τελευταίο στοιχείο που εισήχθη θα εξαχθεί πρώτο. Άλλο όνομα L I F O (Last In First Out) Χρήσεις Στοίβας Καθημερινή Ζωή (όχι πάρα πολλές) Δίσκοι Τραπεζαρίας