Σύνοψη Προηγούµενου (2/2) Στοίβες, Ουρές, Ουρές Προτεραιότητας. Πρόβληµα: Κατασκευή Οµοιόµορφα Τυχαίας Μετάθεσης.

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Σύνοψη Προηγούµενου (2/2) Στοίβες, Ουρές, Ουρές Προτεραιότητας. Πρόβληµα: Κατασκευή Οµοιόµορφα Τυχαίας Μετάθεσης."

Transcript

1 Σύνοψη Προηγούµενου (1/2 Στοίβες, Ουρές, Ουρές Προτεραιότητας Ορέστης Τελέλης Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Πίνακες Εισαγωγή, σε χρόνο O(1. Αναζήτηση, σε χρόνο O(n. ιαγραφή, σε χρόνο O(n (απαιτεί αναζήτηση. Αναπαράσταση Υποσυνόλου n συνεχόµενων ακεραίων (π.χ., 0, 1, 2,..., n 1: Εισαγωγή, ιαγραφή, Αναζήτηση σε χρόνο O(1. Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 1 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 2 / 56 Σύνοψη Προηγούµενου (2/2 Πρόβληµα: Κατασκευή Οµοιόµορφα Τυχαίας Μετάθεσης Ταξινοµηµένοι Πίνακες υαδική Αναζήτηση, σε χρόνο O(log n. Εισαγωγή, σε χρόνο O(n. Απαιτεί: υαδική Αναζήτηση για εντοπισµό ϑέσης εισαγωγής χρόνος: O(log n. Μετακίνηση O(n στοιχείων κατά µία ϑέση χρόνος: O(n. Εισαγωγή του νέου στοιχείου στην κενή ϑέση που προκύπτει χρόνος: O(1. ιαγραφή, σε χρόνο O(n. ίνεται πίνακας A µε n στοιχεία. Ζητείται αλγόριθµος που: έχεται σαν είσοδο τον πίνακα A, «ανακατεύει» τη σειρά των στοιχείων στον A, ώστε: η τελική σειρά να είναι οποιαδήποτε από τις n! µεταθέσεις των στοιχείων, µε πιθανότητα 1 n!. εδοµένο: µπορούµε να επιλέξουµε έναν τυχαίο αριθµό από το {0, 1,..., k 1 µε πιθανότητα 1 n. Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 3 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 4 / 56

2 Κατασκευή Οµοιόµορφα Τυχαίας Μετάθεσης Υλοποίηση σε Java Ενας αλγόριθµος µε ϐέλτιστη πολυπλοκότητα (Donald Knuth Knuth Shuffle Algorithm import java.util.random; // Permutes the array "A" uniformly at random. public void shuffle(int[] A { Είσοδος: πίνακας A 1. για i = 0,..., n 1 εκτέλεσε: 1.1 επίλεξε µια ϑέση j {i,..., n 1 τυχαία και οµοιόµορφα 1.2 αντάλλαξε τα περιεχόµενα των A[i] και A[j]. 2. επίστρεψε A Πολυπλοκότητα: O(n. ίνει τυχαία επιλεγµένη µετάθεση των περιεχοµένων του A, µε πιθανότητα 1 n!. Γιατί; Random rndgen = new Random(System.currentTimeMillis(; for(int i = 0; i < A.length; i++ { // Random position in {i, i+1,..., n-1 int pos = i+rndgen.nextint(a.length-i; // Swap int tmp = A[i]; A[i] = A[pos]; A[pos] = tmp; Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 5 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 6 / 56 Ανάλυση Κατασκευής Οµοιόµορφα Τυχαίας Μετάθεσης Ανάλυση Κατασκευής Οµοιόµορφα Τυχαίας Μετάθεσης Η πιθανότητα το A[1] να έχει στην έξοδο την τιµή που παρατηρούµε είναι: Pr( A[1] = 1/n. Η πιθανότητα το A[2] να έχει στην έξοδο την τιµή που παρατηρούµε, δεδοµένου του A[1] είναι: Pr( A[2] A[1] = 1/(n 1. Η πιθανότητα το A[3] να έχει στην έξοδο την τιµή που παρατηρούµε, δεδοµένων των A[1], A[2], είναι: Pr( A[3] A[1] A[2] = 1/(n Η πιθανότητα το A[i] να έχει στην έξοδο την τιµή που παρατηρούµε, δεδοµένων των A[1], A[2],..., A[i 1] είναι: ( 1 Pr A[i] A[1] A[2] A[i 1] = n i + 1 Η πιθανότητα να δούµε στην έξοδο τη διάταξη A που υποθέσαµε είναι: ( Pr( A = Pr A[1] A[2] A[n] = ( = Pr A[n] A[1] A[2] A[n 1] ( = 1 Pr A[1] A[2] A[n 1] ( = 1 Pr A[n 1] A[1] A[2] A[n 2] = 1 1 ( 2 Pr A[1] A[2] A[n 2] = = n = 1 n! ( Pr A[1] A[2] A[n 1] ( Pr A[1] A[2] A[n 2] Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 7 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 8 / 56

3 Ανακεφαλαίωση: Πίνακες Σηµερινό Μάθηµα Οι πίνακες είναι κατάλληλοι για αναπαράσταση δεδοµένων σαν αυτά που ϐρίσκονται σε µια ϐάση δεδοµένων. Αρχεία προσωπικού, αποθήκη, οικονοµικά δεδοµένα, κτλ. ηλαδή δεδοµένα που υφίστανται στον πραγµατικό κόσµο. Τέτοιες δοµές διευκολύνουν την πρόσβαση στα δεδοµένα. Νέες οµές εδοµένων: Στοίβες, Ουρές, Ουρές Προτεραιότητας. Υλοποιήσεις µε Πίνακες. Αποδοτική εισαγωγή, διαγραφή, και αναζήτηση δεδοµένων. Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 9 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 10 / 56 οµές εδοµένων ως Προγραµµατιστικά Εργαλεία Περιορισµένη Πρόσβαση Σε έναν πίνακα, η προσπέλαση ενός αντικειµένου µπορεί να γίνει: Οι δοµές δεδοµένων που ϑα εξετάσουµε στη συνέχεια χρησιµοποιούνται ως προγραµµατιστικά εργαλεία. είτε άµεσα (εφόσον η ϑέση του είναι γνωστή, π.χ., A[12]. είτε διατρέχοντας τον πίνακα κελί-κελί ώσπου να ϐρεθεί, π.χ. µε ένα ϐρόχο: Αποτελούν εννοιολογικές αναπαραστάσεις που υποβοηθούν στην ανάπτυξη προγραµµάτων. ηµιουργούνται για να επιτελέσουν µια συγκεκριµένη λειτουργία κατά τη διάρκεια εκτέλεσης ενός προγράµµατος. Οταν ολοκληρωθεί η λειτουργία, η δοµή δε χρησιµεύει πλέον, και καταστρέφεται. for(int i = 0; i < A.length; i++ {... A[i]... Στις δοµές που ϑα εξετάσουµε τώρα η προσπέλαση είναι περιορισµένη: Μόνο ένα αντικείµενο είναι διαθέσιµο για ανάγνωση ή διαγραφή, σε κάθε δεδοµένη χρονική στιγµή. Η διεπαφή (interface των δοµών αυτών είναι σχεδιασµένη ώστε να επιβάλλει την περιορισµένη πρόσβαση. Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 11 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 12 / 56

4 Πιο Αφηρηµένες οµές Οι στοίβες και οι ουρές είναι πιο αφηρηµένες δοµές από τους πίνακες. Ορίζονται ουσιαστικά από τη διεπαφή (interface τους. Ο εσωτερικός µηχανισµός που τις υλοποιεί δεν είναι ορατός στο χρήστη τους. Στοίβες Stacks Παράδειγµα: Μία στοίβα µπορεί να υλοποιηθεί µε χρήση πίνακα ή µε συνδεδεµένη λίστα. Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 13 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 14 / 56 Στοίβα (Stack Μερικές Εφαρµογές Στοιβών LIFO (Last In, First Out δοµή δεδοµένων. Η στοίβα περιορίζει την προσπέλαση στο στοιχείο που εισήχθη πιο πρόσφατα. Η δοµή στοίβα µπορεί να υλοποιηθεί µε έναν πίνακα και έναν δείκτη στο στοιχείο της κορυφής της. x y = top Ελεγχος ισορροπίας παρενθέσεων και αγκύλων σε µία έκφραση. Συντακτική ανάλυση εκφράσεων, όπως 3 ( Βοηθητική δοµή για αλγόριθµους εξέτασης κόµβων δέντρου ή αναζητήσεις στις κορυφές ενός γράφου. Μικροεπεξεργαστές χρησιµοποιούν αρχιτεκτονική που στηρίζεται σε στοίβες. Υπολογιστές τσέπης. Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 15 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 16 / 56

5 Αναλογία µε Φυσικό Κόσµο Παράδειγµα Λειτουργιών Στοίβας Μια στοίβα µε ταχυδροµικές επιστολές. Εξέταση των επιστολών από πάνω προς τα κάτω. push(10 push(5 pop( push(15 push(7 pop( Μια στοίβα από πιάτα. Πλύσιµο των πιάτων από πάνω προς τα κάτω. Βασικές ενέργειες µιας στοίβας. Τοποθέτηση στοιχείου στην κορυφή µιας στοίβας: εισαγωγή push Αποµάκρυνση στοιχείου από την κορυφή: εξαγωγή pop. Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 17 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 18 / 56 Υλοποίηση Στοίβας Υλοποίηση Στοίβας (1/3 Βασίζεται στη διαχείριση των παρακάτω αντικειµένων: class StackX { private int maxsize; // size of stack stack array top τύπου int «είκτης» στην κορυφή της στοίβας stackarray τύπος πίνακα Πίνακας αποθήκευσης στοιχείων της στοίβας private long[] stacarray; private int top; // top of stack - maxsize τύπου int Μέγεθος πίνακα που υλοποιεί τη στοίβα. Σηµείωση: Είναι ϐολικό να έχουµε top= 1, για την κενή στοίβα. public StackX(int s { maxsize = s; stackarray = new long[maxsize]; top = -1; // constructor // set array size // create array // no items yet - Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 19 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 20 / 56

6 Υλοποίηση Στοίβας (2/3 public void push(long j { // put j on top stackarray[++top] = j; public long pop( { return stackarray[top--]; // access, decrement top public long peek( { // peek at top of stack return stackarray[top]; public boolean isempty( { // true if stack empty return(top == -1; public boolean isfull( { // true if stack full return(top == maxsize - 1; Υλοποίηση Στοίβας (3/3 class StackApp { public static void main(string[] args { StackX thestack = new StackX(10; thestack.push(20; thestack.push(40; thestack.push(60; thestack.push(80; while(!thestack.isempty( { long value = thestack.pop(; System.out.print(value; System.out.print(" "; System.out.println(""; // make stack // push items // until empty // delete item // display it Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 21 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 22 / 56 Χειρισµός Λαθών Τι ϑα συµβεί κατά την εισαγωγή στοιχείου σε πλήρη στοίβα; Τι ϑα συµβεί κατά την εξαγωγή στοιχείου από κενή στοίβα; Στη συγκεκριµένη υλοποίηση ο χειρισµός των λαθών αφήνεται στο χρήστη: if (! thestack.isfull( thestack.push(item; else System.out.println("Error..."; Αλλες λύσεις: εσωτερικός έλεγχος λαθών στην κλάση. Προκειµένου να προσφέρονται στο χρήστη οι υπηρεσίες της στοίβας µε συνέπεια. Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 23 / 56 Υλοποίηση µε Ελέγχους public boolean push(long j { // put j on top if (!isfull( { stackarray[++top] = j; return(true; return(false; /*** Only removes top without returning top element ***/ public void pop( { if (!isempty( top--; /*** Needs to be used for reading top (before poping ***/ public long peek( { return stackarray[top]; public boolean isempty( { return(top == -1; public boolean isfull( { return(top == maxsize - 1; Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 24 / 56

7 Παράδειγµα Εφαρµογής Στοίβας Αλγόριθµος Balance Checker Οι µεταγλωττιστές (compilers χρειάζεται να ελέγχουν εάν υπάρχει ισορροπία στα σύµβολα σε διάφορες εκφράσεις. "(" πρέπει να ταιριαστεί µε "". "[" πρέπει να ταιριαστεί µε "]". "/*" πρέπει να ταιριαστεί µε "*/", κ.λ.π. Παρδείγµατα µη ταιριασµάτων: a = b + (c - d * (e - f; // Extra!!! while ( m < (n[8] + a { // is missing!!! /* */ read character ch; while not end of file if ch is (, or [, or { push(ch; else if ch is, ], or { pop symbol from stack; if ch and popped symbol not matching return error; else if ch is anything else, ignore read next character ch from file; if stack is empty return success; else return error; Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 25 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 26 / 56 Αλγόριθµος Balance Checker Αλγόριθµος Balance Checker S = t[5] + (a (c + b read S, =, t ; [ read [ ; push( [ [ read 5 ; read ] ; pop(; // ] matches [ read + ; S = t[5] + (a (c + b ( ( read ( ; push( ( ; ( ( read c, +, b ; ( read ; pop(; // matches ( read ; pop(; // matches ( ( read ( ; push( ( ; ( read a, * ; Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 27 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 28 / 56

8 Πολυπλοκότητα Λειτουργιών Στοίβας Τα στοιχεία εισάγονται και ανακτώνται σε σταθερό χρόνο O(1. Είναι ανεξάρτητο του µεγέθους n της στοίβας. Και οι δύο λειτουργίες είναι πολύ αποδοτικές (γρήγορες. εν απαιτούνται συγκρίσεις στοιχείων ή µετακινήσεις στοιχείων, που εµπεριέχουν κόστος. Ουρές Queues εν προσφέρονται οι δυνατότητες: απευθείας ανάκτησης ενός συγκεκριµένου στοιχείου από τη στοίβα ανάκτησης του i-οστού στοιχείου Μπορείτε ενδεχοµένως να τις υλοποιήσετε: Τότε, ίσως δε χρειάζεται η αποδοτικότητα µιας στοίβας. Ισως χρειάζεται ένας πίνακας που κατά περίπτωση λειτουργεί σαν στοίβα. Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 29 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 30 / 56 Ουρά (Queue Αναλογία µε Φυσικό Κόσµο Μία «γραµµή αναµονής» της οποίας το µήκος: αυξάνει καθώς εισάγονται στοιχεία στο τέλος της, µικραίνει καθώς αποµακρύνονται στοιχεία από την αρχή της. Αντίθετα µε τη στοίβα και τα δύο άκρα χρησιµοποιούνται. οµή εδοµένων FIFO (First In, First Out: ιατήρηση σχετικής σειράς στοιχείων, ως προς εισαγωγή/αποµάκρυνση. Ουρά αναµονής για επιβίβαση σε µέσο µαζικής µεταφοράς. Πακέτα δεδοµένων που περιµένουν τη σειρά τους να µεταδοθούν στο Internet. Ουρά εκτυπωτή µε εργασίες εκτύπωσης που αναµένουν επεξεργασία. Ουρά αποθήκευσης χαρακτήρων/συµβόλων που πληκτρολογούνται σε επεξεργαστή κειµένου. Στοιχείο που εισάγεται πριν από άλλο, ϑα εξαχθεί πιο νωρίς από το άλλο. Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 31 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 32 / 56

9 Βασικές Λειτουργίες Ουράς Αναπαράσταση Ουράς Συνίσταται στη διαχείριση των ακόλουθων αντικειµένων: τύπου int «δείκτης» στην αρχή της ουράς Εισαγωγή στοιχείου τύπου int «δείκτης» στο τέλος της ουράς Τοποθετείται στο τέλος της ουράς. Αποµάκρυνση στοιχείου Αποµακρύνεται από την αρχή της ουράς. z y x = = qarray τύπος πίνακα πίνακας αποθήκευσης στοιχείων ουράς maxsize τύπου int µέγεθος πίνακα που υλοποιεί την ουρά Παρατηρήσεις: Θέση (στον πίνακα επόµενης εισαγωγής στοιχείου: +1. Κενή ουρά: = 0, nitems = 0, = 1 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 33 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 34 / 56 Παράδειγµα Λειτουργίας Ουράς Υλοποίηση Ουράς µε Πίνακα makeempty( Μπορεί να υλοποιηθεί χρησιµοποιώντας πίνακα. insert(a a insert(b a b Μη αποδοτική εάν µετακινούµε όλα τα στοιχεία µετά από κάθε κλήση της remove(. Σπατάλη χώρου εάν δεν χρησιµοποιούµε όλα τα κελιά. Για να αντιµετωπίσουµε το πρόβληµα διαχείρισης χώρου. Μπορούµε να ϕανταστούµε την ουρά σαν έναν κυκλικό πίνακα. remove( b ιατηρούµε (και πάλι 2 δείκτες: έναν για την αρχή ( και έναν για το τέλος της ουράς ( remove( Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 35 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 36 / 56

10 Κυκλική Αναπαράσταση Ουράς Παράδειγµα Λειτουργίας µε Κυκλικό Πίνακα (Αναδίπλωση Ουρά µε «Κυκλικό» Πίνακα Επανορισµός της κατάστασης κενής ουράς: (αποµάκρυνση (εισαγωγή = 0, nitems = 0, = maxsize 1 Αρχικά: c d e insert(f f c d e remove( f d e remove( f e remove( f Οταν οι δείκτες, που δείχνουν στο τέλος και στην αρχή της ουράς αντίστοιχα ϕτάσουν στο τέλος του πίνακα. Επανορίζουµε τους δείκτες ώστε να δείχνουν και οι δύο στην αρχή Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 37 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 38 / 56 Βασικές Λειτουργίες Ουράς insert(item: εισάγει το αντικείµενο item στο τέλος της ουράς. remove(: αποµακρύνει το πρώτο στοιχείο από την ουρά. peekfront(: επιστρέφει το πρώτο στοιχείο της ουράς. isempty(: ελέγχει εάν η ουρά είναι άδεια. isfull(: ελέγχει εάν η ουρά είναι γεµάτη. size(: αριθµός στοιχείων στην ουρά. Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 39 / 56 Υλοποίηση Ουράς (1/3 µε Ελέγχους class Queue { private int maxsize; private long[] qarray; private int ; private int ; private int nitems; // public Queue(int s { // constructor maxsize = s; qarray = new long[maxsize]; = 0; = -1; nitems = 0; // public boolean insert(long j { // put items at if (!isfull( { if ( == maxsize - 1 = -1; qarray[++] = j; nitems++; return(true; return(false; Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 40 / 56

11 Υλοποίηση Ουράς (2/3 µε Ελέγχους public boolean remove( { // remove from the if (!isempty( { ++; if ( == maxsize = 0; nitems--; return(true; return(false; /** Needs to be used for reading (before removing**/ public long peekfront( { // peek at the item return qarray[]; public boolean isempty( { return (nitems == 0; public boolean is Full( { return (nitems == maxsize; public int size( { return(nitems; Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 41 / 56 Υλοποίηση Ουράς (3/3 µε Ελέγχους class QueueApp { public static void main(string[] args { Queue Q = new Queue(5; // queue with 5 cells Q.insert(10; Q.insert(20; // Insert 4 items Q.insert(30; Q.insert(40; // Remove 3 items: 10, 20, 30 Q.remove(; Q.remove(; Q.remove(; Q.insert(50; Q.insert(60; // Insert 4 items Q.insert(70; Q.insert(80; // (wraps around while(!q.isempty( { // Remove and display all long n = Q.peekFront(; // (40, 50, 60, Q.remove(; System.out.print(n; System.out.print(" "; System.out.println(""; // end main // end class QueueApp Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 42 / 56 Πολυπλοκότητα Λειτουργιών Ουράς (σε πλήρη αντιστοιχία µε τη στοίβα Εισαγωγή στην / Αποµάκρυνση από την ουρά σε χρόνο O(1. Είναι ανεξάρτητο του µεγέθους n της ουράς. Και οι δύο λειτουργίες είναι πολύ αποδοτικές (γρήγορες. Ουρές Προτεραιότητας Priority Queues εν απαιτούνται συγκρίσεις στοιχείων ή µετακινήσεις στοιχείων, που εµπεριέχουν κόστος. Οµως δεν υπάρχει δυνατότητα: απευθείας ανάκτησης ενός συγκεκριµένου στοιχείου από την ουρά. ανάκτησης του i-οστού στοιχείου. Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 43 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 44 / 56

12 Ουρές Προτεραιότητας: Εισαγωγή Ουρές Προτεραιότητας: Εισαγωγή Μια ουρά προτεραιότητας είναι µια πιο εξειδικευµένη δοµή δεδοµένων σε σχέση µε τη στοίβα ή την ουρά. Οπως και στην ουρά, τα στοιχεία αφαιρώνται από την αρχή. Οµως, τα στοιχεία ταξινοµούνται (κατά την εισαγωγή έτσι, ώστε το στοιχείο µε το χαµηλότερο (ή το υψηλότερο κλειδί να ϐρίσκεται πάντα µπροστά. Τα στοιχεία τοποθετούνται στην ουρά µε ϐάση την σηµαντικότητά τους. Θεωρούµε ότι το στοιχείο µε το µικρότερο (µεγαλύτερο κλειδί έχει µεγαλύτερη προτεραιότητα Ο στόχος µας είναι να: προσπελάσουµε το σηµαντικότερο στοιχείο στη συλλογή. αποµακρύνουµε το στοιχείο από τη συλλογή. Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 45 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 46 / 56 Λειτουργίες Υλοποίηση Επιλογές για την υλοποίηση ουράς προτεραιότητας: Μία ουρά προτεραιότητας είναι ένας αφηρηµένος τύπος δεδοµένων (abstract data type -- ADT που προσφέρει µεθόδους που επιτρέπουν: Αποµάκρυνση στοιχείου µε την ελάχιστη ή µέγιστη τιµή κλειδιού (στοιχείο «στην αρχή» της ουράς. Εισαγωγή. Ταξινοµηµένος Πίνακας Αποµάκρυνση του µεγαλύτερου στοιχείου γρήγορα O(1. Εισαγωγή διαρκεί περισσότερο χρόνο: O(n. Πρέπει να µετακινηθούν O(n στοιχεία του πίνακα στη χειρότερη περίπτωση, ώστε να εισαχθεί το νέο στοιχείο στη σωστή ϑέση. Σωρός (είδος δένδρου Εκτελεί εισαγωγή και διαγραφή σε χρόνο O(log n. Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 47 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 48 / 56

13 Ουρά Προτεραιότητας µε Πίνακα (1/3 Ουρά Προτεραιότητας µε Πίνακα (2/3 class PriorityQ { private int maxsize; private long[] qarray; // sorted arrat: max at qarray[0] private int nitems; public void insert(long item { int j; if (nitems == 0 qarray[nitems++] = items; else { // insert item public PriorityQ(int s { // Constructor maxsize = s; qarray = new long[maxsize]; nitems = 0; for(j = nitems - 1; j >= 0; j-- { if (item > qarray[j] qarray[j+1] = qarray[j]; else break; qarray[j+1] = item; nitems++; Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 49 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 50 / 56 Ουρά Προτεραιότητας µε Πίνακα (3/3 - public long removemin( { // remove minimum item return qarray[--nitems]; public long peekmin( { // peek at minimum item return qarray[nitems-1]; public boolean isempty( { // true if empty return (nitems == 0; Ουρά Προτεραιότητας µε Πίνακα (3/3 class PriorityQApp { public static void main(string[] args { PriorityQ thepq = new PriorityQ(5; thepq.insert(30; thepq.insert(50; thepq.insert(10; thepq.insert(40; thepq.insert(20; while (!thepq.isempty( { long item = thepq.remove(; System.out.print(item + " "; // 10, 20, 30, 40, 50 public boolean isfull( { // true if full return (nitems == maxsize; // end while System.out.println(""; // end main Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 51 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 52 / 56

14 Ασκηση 1 Υλοποίηση Ουράς µε ύο Στοίβες ιαθέτουµε δύο αντικείµενα δοµής στοίβας, S1, S2. Υποστηρίζουν τις συνήθεις λειτουργίες στοίβας: push, pop, peek, isempty, isfull, size Ασκηση 1 Υλοποίηση Ουράς µε ύο Στοίβες class Queue { private Stack S1; private Stack S2; Ζητούνται υλοποιήσεις των λειτουργιών insert και remove «εικονικής» ουράς: µόνο µε χρήση των δύο στοιβών S1, S2, σαν αποθηκευτικό µέσο, µόνο µε χρήση των λειτουργιών στοίβας (επί των S1, S2. Να δοθούν δύο υλοποιήσεις: 1. Στην πρώτη, η λειτουργία insert να είναι χρόνου O(1. 2. Στη δεύτερη, η λειτουργία remove να είναι χρόνου O(1. public Queue(int maxsize { S1 = new Stack(maxSize; S2 = new Stack(maxSize; public void insert(int item { /* implementation??? */ public int remove( { /* implementation??? */ Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 53 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 54 / 56 Ασκηση 1 - insert σε χρόνο O(1 Ασκηση 2 public void insert(int item { S1.push(item; public int remove( { while(!s1.isempty( // "Overturn" S1 into S2 S2.push( S1.pop( ; Υλοποίηση Στοίβας µε ύο Ουρές ιαθέτουµε δύο αντικείµενα δοµής ουράς, Q1, Q2. Υποστηρίζουν τις συνήθεις λειτουργίες ουρών: insert, remove, peekfront, isempty, isfull, size int item = S2.pop(; // Top of S2 was "bottom" in S1 // (was "first-in" while(!s2.isempty( // Restore S1 without item S1.push( S2.pop( ; return(item; // Return "first-in" as "first-out" Ζητούνται υλοποιήσεις των λειτουργιών push και pop «εικονικής» στοίβας: µόνο µε χρήση των δύο ουρών Q1, Q2, σαν αποθηκευτικό µέσο, µόνο µε χρήση των λειτουργιών ουράς (επί των Q1, Q2. Να δοθούν δύο υλοποιήσεις: 1. Στην πρώτη, η λειτουργία pop να είναι χρόνου O(1. Πολυπλοκότητα της remove: O(n. 2. Στη δεύτερη, η λειτουργία push να είναι χρόνου O(1. Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 55 / 56 Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 56 / 56

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 19/10/2017 Ανακεφαλαίωση:

Διαβάστε περισσότερα

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 4/11/2016 Ανακεφαλαίωση:

Διαβάστε περισσότερα

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

Σύνοψη Προηγούμενου (1/2) Στοίβες, Ουρές, Ουρές Προτεραιότητας. Σύνοψη Προηγούμενου (2/2) Σημερινό Μάθημα. Πίνακες. Εισαγωγή, σε χρόνο O(1). Σύνοψη Προηγούμενου (1/2) Στοίβες, Ουρές, Ουρές Προτεραιότητας Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Πίνακες Εισαγωγή, σε χρόνο O(1). Αναζήτηση, σε χρόνο O(n).

Διαβάστε περισσότερα

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

Συλλογές, Στοίβες και Ουρές Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση οποιουδήποτε στοιχείου. Συλλογή (bag) : Επιστρέφει

Διαβάστε περισσότερα

Ανάλυση. Ο εσωτερικός ϐρόχος εκτελείται i + 1 ϕορές, για i = 0,..., n 1.

Ανάλυση. Ο εσωτερικός ϐρόχος εκτελείται i + 1 ϕορές, για i = 0,..., n 1. Σύνοψη Προηγούµενου Πίνακες Arrays Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Πληροφορίες Μαθήµατος. ιαδικαστικά ϑέµατα. Αντικείµενο Μαθήµατος. Αντικειµενοστρεφής

Διαβάστε περισσότερα

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

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Στοίβες Ουρές Στοίβες: Βασικές Έννοιες. Ουρές: Βασικές Έννοιες. Βασικές Λειτουργίες. Παραδείγματα. Στοίβες Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή πρώτη

Διαβάστε περισσότερα

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 16: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Ουρά Προτεραιότητας (Priority

Διαβάστε περισσότερα

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης Σύνοψη Προηγούμενου Πίνακες (Arrays Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Διαδικαστικά θέματα. Aντικείμενο Μαθήματος. Aντικείμενα, Κλάσεις, Μέθοδοι, Μεταβλητές.

Διαβάστε περισσότερα

Σύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης

Σύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης Σύνοψη Προηγούμενου Λίστες (Lists) Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Στοίβες (Stacks) : στην κορυφή της στοίβας ( ) από την κορυφή της στοίβας ( ) Ουρές

Διαβάστε περισσότερα

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

Δομές Δεδομένων & Αλγόριθμοι Ουρές Ουρές Περίληψη Η ΟυράΑΔΤ Υλοποίηση με κυκλικό πίνακα Αυξανόμενη Ουρά βασισμένη σε πίνακα Interface ουράς στην C++ Η Ουρά ADT Η ΑΔΤ Ουρά αποθηκεύει αυθαίρετα αντικείμενα Οι εισαγωγές και διαγραφές

Διαβάστε περισσότερα

Στοίβες - Ουρές. Στοίβα (stack) Γιάννης Θεοδωρίδης, Νίκος Πελέκης, Άγγελος Πικράκης Τµήµα Πληροφορικής

Στοίβες - Ουρές. Στοίβα (stack) Γιάννης Θεοδωρίδης, Νίκος Πελέκης, Άγγελος Πικράκης Τµήµα Πληροφορικής Στοίβες - Ουρές Γιάννης Θεοδωρίδης, Νίκος Πελέκης, Άγγελος Πικράκης Τµήµα Πληροφορικής οµές εδοµένων 1 Στοίβα (stack) οµή τύπουlifo: Last In - First Out (τελευταία εισαγωγή πρώτη εξαγωγή) Περιορισµένος

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 16: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Ουρά Προτεραιότητας Η δομή

Διαβάστε περισσότερα

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5 Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Oι βασικές πράξεις (λειτουργίες) που ορίζονται για τον τύπο στοίβα αναφέρονται παρακάτω:

Oι βασικές πράξεις (λειτουργίες) που ορίζονται για τον τύπο στοίβα αναφέρονται παρακάτω: 3 ΣTOIBEΣ KAI OYPEΣ 3.1 ΣΤΟΙΒΕΣ Στοίβα (stack) είναι µία λίστα στην οποία νέα στοιχεία µπορούν να προστεθούν και να αφαιρεθούν µόνο από τη µία άκρη της (κορυφή της στοίβας). Συχνά µία στοίβα αναφέρεται

Διαβάστε περισσότερα

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

Δομές Δεδομένων Ενότητα 4 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 4: Ουρές Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

Διαβάστε περισσότερα

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

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης Δοµές Δεδοµένων 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων Ε. Μαρκάκης Περίληψη Χρήση αναδροµικών εξισώσεων στην ανάλυση αλγορίθµων Αφηρηµένοι τύποι δεδοµένων Συλλογές στοιχείων Στοίβα

Διαβάστε περισσότερα

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

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αφηρημένοι Τύποι Δεδομένων (ΑΤΔ) Οι ΑΤΔ Στοίβα και Ουρά Υλοποίηση των ΑΤΔ Στοίβα και Ουρά ΕΠΛ231 Δομές Δεδομένων

Διαβάστε περισσότερα

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

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( ) Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016

Διαβάστε περισσότερα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Υλοποίηση Δυαδικού Σωρού σε γλώσσα Java. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Υλοποίηση Δυαδικού Σωρού σε γλώσσα Java. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Υλοποίηση Δυαδικού Σωρού σε γλώσσα Java Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Σωρός Μεγίστου ως ΑΤΔ Ένας σωρός μεγίστου (max heap) είναι ένας ΑΤΔ που

Διαβάστε περισσότερα

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 12/10/2017

Διαβάστε περισσότερα

Λίστες (Lists) Ορέστης Τελέλης. Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς

Λίστες (Lists) Ορέστης Τελέλης. Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Λίστες (Lists) Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς οµές εδοµένων 1 / 50 Σύνοψη Προηγούµενου Στοίβες (Stacks) «Last-In First-Out»

Διαβάστε περισσότερα

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση ΑΤΔ με Συνδεδεμένες Λίστες -

Διαβάστε περισσότερα

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr.

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr. Δομές Δεδομένων & Ανάλυση Αλγορίθμων 3ο Εξάμηνο Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα http://aetos.it.teithe.gr/~demos/teaching_gr.html Δημοσθένης Σταμάτης Τμήμα Μηχανικών Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ

Διαβάστε περισσότερα

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 9-1

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 9-1 Σωροί Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθµος ταξινόµησης HeapSort Παραλλαγές Σωρών ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι

Διαβάστε περισσότερα

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

Διαβάστε περισσότερα

Διάλεξη 26: Σωροί. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 26: Σωροί. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 26: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας -Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι

Διαβάστε περισσότερα

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

Δομές Δεδομένων & Αλγόριθμοι Λίστες Λίστες - Απλά Συνδεδεμένες Λίστες - Διπλά Συνδεδεμένες Λίστες Είδη Γραμμικών Λιστών Σειριακή Λίστα Καταλαμβάνει συνεχόμενες θέσεις κύριας μνήμης Συνδεδεμένη Λίστα Οι κόμβοι βρίσκονται σε απομακρυσμένες

Διαβάστε περισσότερα

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εισαγωγή, εύρεση, διαγραφή) Ευθύγραμμες Διπλά Συνδεδεμένες Λίστες

Διαβάστε περισσότερα

public class ArrayStack implements Stack {

public class ArrayStack implements Stack { public class ArrayStack implements Stack { private static final int DEF_STACK_SIZE=2; //Array of objects private Object[] S; private int index ; // index, top, last, position // Returns the last item of

Διαβάστε περισσότερα

Ουρά Προτεραιότητας (priority queue)

Ουρά Προτεραιότητας (priority queue) Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει δύο βασικές λειτουργίες : Εισαγωγή στοιχείου με δεδομένο κλειδί. Επιστροφή ενός στοιχείου με μέγιστο (ή ελάχιστο) κλειδί και διαγραφή

Διαβάστε περισσότερα

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

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 Δοµές Δεδοµένων Ι Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε

Διαβάστε περισσότερα

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

Βασικές οµές εδοµένων Βασικές οµές εδοµένων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αφηρηµένοι Τύποι εδοµένων Οι ΑΤ Στοίβα και Ουρά Υλοποίηση των ΑΤ Στοίβα και Ουρά µε ιαδοχική και υναµική Χορήγηση Μνήµης

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ

ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ Ουρές Προτεραιότητας (Priority Queues) Θεωρούµε ότι τα προς αποθήκευση στοιχεία έχουν κάποια διάταξη (καθένα έχει µια προτεραιότητα). Τα προς αποθήκευση στοιχεία είναι

Διαβάστε περισσότερα

8. Σωροί (Heaps)-Αναδρομή- Προχωρημένη Ταξινόμηση

8. Σωροί (Heaps)-Αναδρομή- Προχωρημένη Ταξινόμηση Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 8. Σωροί (Heaps)-Αναδρομή- Προχωρημένη Ταξινόμηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε

Διαβάστε περισσότερα

Τµήµα Πληροφορικής. Δοµές Δεδοµένων - Εργασία 1. Φθινοπωρινό Εξάµηνο Διδάσκων: E. Μαρκάκης. Στοίβες και Ουρές. Οικονοµικό Πανεπιστήµιο Αθηνών

Τµήµα Πληροφορικής. Δοµές Δεδοµένων - Εργασία 1. Φθινοπωρινό Εξάµηνο Διδάσκων: E. Μαρκάκης. Στοίβες και Ουρές. Οικονοµικό Πανεπιστήµιο Αθηνών Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα Πληροφορικής Φθινοπωρινό Εξάµηνο 2016 Δοµές Δεδοµένων - Εργασία 1 Διδάσκων: E. Μαρκάκης Στοίβες και Ουρές Σκοπός της εργασίας είναι η εξοικείωση µε βασικούς αφηρηµένους

Διαβάστε περισσότερα

ΠΛΗ111. Ανοιξη Μάθηµα 4 ο. Στοίβα. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΠΛΗ111. Ανοιξη Μάθηµα 4 ο. Στοίβα. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 4 ο Στοίβα Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση Αφηρηµένος Τύπος εδοµένων Στοίβα Υλοποίηση µε Πίνακα Υλοποίηση

Διαβάστε περισσότερα

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ Κωδικός Θ: ΤΠ3001, Κωδικός Ε: ΤΠ3101 (ΜΕΥ/Υ) Ώρες (Θ - Ε): 4-2 Προαπαιτούμενα: Δρ. ΒΙΔΑΚΗΣ ΝΙΚΟΣ ΕΡΓΑΣΤΗΡΙΟ 6 Στοίβα (Stack) Stack Introduction Stack is one of the

Διαβάστε περισσότερα

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

Δοµές Δεδοµένων. 7η Διάλεξη Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης Δοµές Δεδοµένων 7η Διάλεξη Αφηρηµένοι Τύποι Δεδοµένων Ε. Μαρκάκης Περίληψη Στοίβα ώθησης προς τα κάτω Παραδείγµατα πελατών για στοίβες Υλοποιήσεις στοίβας µε πίνακες και λίστες Γενικές υλοποιήσεις Ουρές

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Στην άσκηση αυτή θα υλοποιήσετε μια κλάση RandomVector η οποία διαχειρίζεται ένα τυχαίο διάνυσμα ακεραίων το οποίο μπορεί να έχει οποιοδήποτε

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors, equals, tostring Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο

Διαβάστε περισσότερα

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

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 8: C++ ΒΙΒΛΙΟΗΚΗ STL, ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Δομές Δεδομένων ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δομές

Διαβάστε περισσότερα

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης Ουρές Προτεραιότητας: Υπενθύμιση Σωροί / Αναδρομή / Ταξινόμηση Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς (Abstract Data Type) με μεθόδους: Μπορεί να υλοποιηθεί με

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 2 ΛΥΣΕΙΣ Γραμμικές Δομές Δεδομένων, Ταξινόμηση

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 2 ΛΥΣΕΙΣ Γραμμικές Δομές Δεδομένων, Ταξινόμηση ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 231: Δομές Δεδομένων και Αλγόριθμοι Εαρινό Εξάμηνο 2013 ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 2 ΛΥΣΕΙΣ Γραμμικές Δομές Δεδομένων, Ταξινόμηση Διδάσκων Καθηγητής: Παναγιώτης Ανδρέου

Διαβάστε περισσότερα

4. Συνδεδεμένες Λίστες

4. Συνδεδεμένες Λίστες Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 4. Συνδεδεμένες Λίστες 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 10/11/2016 Εισαγωγή

Διαβάστε περισσότερα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ουρές προτεραιότητας Κεφάλαιο 9. Ε. Μαρκάκης Επίκουρος Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ουρές προτεραιότητας Κεφάλαιο 9. Ε. Μαρκάκης Επίκουρος Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Ουρές προτεραιότητας Κεφάλαιο 9 Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Ουρές προτεραιότητας Στοιχειώδεις υλοποιήσεις Δοµή δεδοµένων σωρού Αλγόριθµοι σε σωρούς Ο αλγόριθµος heapsort Δοµές

Διαβάστε περισσότερα

Κεφάλαιο 6 Ουρές Προτεραιότητας

Κεφάλαιο 6 Ουρές Προτεραιότητας Κεφάλαιο 6 Ουρές Προτεραιότητας Περιεχόμενα 6.1 Ο αφηρημένος τύπος δεδομένων ουράς προτεραιότητας... 114 6.2 Ουρές προτεραιότητας με στοιχειώδεις δομές δεδομένων... 115 6.3 Δυαδικός σωρός... 116 6.3.1

Διαβάστε περισσότερα

#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα

#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα #2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα ηµήτρης Ν. Σερπάνος Εργαστήριο Συστηµάτων Υπολογιστών Τµήµα Ηλεκτρολόγων Μηχ. & Τεχνολογίας Υπολογιστών Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα Αλγόριθµοι:

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα μέσα σε αντικείμενα Αντικείμενα ως επιστρεφόμενες τιμές Αντικείμενα με πίνακες

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα μέσα σε αντικείμενα Αντικείμενα ως επιστρεφόμενες τιμές Αντικείμενα με πίνακες ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα μέσα σε αντικείμενα Αντικείμενα ως επιστρεφόμενες τιμές Αντικείμενα με πίνακες ANTIKEIMENA MEΣΑ ΣΕ ΑΝΤΙΚΕΙΜΕΝΑ Αντικείμενα μέσα σε αντικείμενα Εκτός

Διαβάστε περισσότερα

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 15: Αναδρομή (Recursion) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Η έννοια της αναδρομής Μη αναδρομικός / Αναδρομικός Ορισμός Συναρτήσεων Παραδείγματα Ανάδρομης Αφαίρεση της Αναδρομής

Διαβάστε περισσότερα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Πίνακες Συµβόλων Κεφάλαιο 12 ( ) Ε. Μαρκάκης Επίκουρος Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Πίνακες Συµβόλων Κεφάλαιο 12 ( ) Ε. Μαρκάκης Επίκουρος Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Πίνακες Συµβόλων Κεφάλαιο 12 (12.1-12.4) Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Πίνακες συµβόλων Διεπαφή πίνακα συµβόλων Αναζήτηση µε αριθµοδείκτη Ακολουθιακή αναζήτηση Δυαδική αναζήτηση

Διαβάστε περισσότερα

ΠΛΗ111. Ανοιξη Μάθηµα 5 ο. Ουρά. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΠΛΗ111. Ανοιξη Μάθηµα 5 ο. Ουρά. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης ΠΛΗ οµηµένος Προγραµµατισµός Ανοιξη 5 Μάθηµα 5 ο Ουρά Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση Αφηρηµένος Τύπος εδοµένων Ουρά Υλοποίηση µε Κυκλικό Πίνακα Υλοποίηση

Διαβάστε περισσότερα

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

Βασικές Δομές Δεδομένων Βασικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αφηρημένοι Τύποι Δεδομένων Οι ΑΤΔ Στοίβα και Ουρά Υλοποίηση των ΑΤΔ Στοίβα και Ουρά με Διαδοχική και Δυναμική Χορήγηση

Διαβάστε περισσότερα

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

Επιµέλεια Θοδωρής Πιερράτος εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,

Διαβάστε περισσότερα

public class ArrayQueue implements Queue {

public class ArrayQueue implements Queue { public class ArrayQueue implements Queue { // ΠΡΟΣΟΧΗ 2 δείκτες τώρα: // Ο ένας (index/last),ίδιος με πριν, δείχνει την θέση του νέου στοιχείου. // Ο άλλος (front) ΠΑΝΤΑ δείχνει την θέση του 1ου στοιχείου

Διαβάστε περισσότερα

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

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

υναµικές οµές εδοµένων

υναµικές οµές εδοµένων υναµικές οµές εδοµένων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: υναµικές οµές εδοµένων Γενικά υναµική έσµευση Μνήµης οµή τύπου structure αυτοαναφορικές δοµές Η δήλωση typedef στη C Αναπαράσταση

Διαβάστε περισσότερα

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 14 Στοίβες 1 / 14 Στοίβες Η στοίβα είναι μια ειδική περίπτωση γραμμικής λίστας στην οποία οι εισαγωγές

Διαβάστε περισσότερα

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 16: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Ουρά Προτεραιότητας Η δομή

Διαβάστε περισσότερα

Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες

Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Κυκλικές Απλά Συνδεδεμένες Λίστες - Κυκλικές Διπλά Συνδεδεμένες

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα ιοικητικής Επιστήµης & Τεχνολογίας ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Κεφάλαιο 9 οµές εδοµένων σε C Γιώργος Γιαγλής Περίληψη Κεφαλαίου 9 οµές εδοµένων υναµικές

Διαβάστε περισσότερα

Ενότητα 7 Ουρές Προτεραιότητας

Ενότητα 7 Ουρές Προτεραιότητας Ενότητα Ουρές Προτεραιότητας ΗΥ4 - Παναγιώτα Φατούρου Ουρές Προτεραιότητας Θεωρούµε ένα χώρο κλειδιών U και έστω ότι µε κάθε κλειδί Κ (τύπου Key) έχει συσχετισθεί κάποια πληροφορία Ι (τύπου Type). Έστω

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Φεβρουαρίου 0 / ένδρα Ενα δένδρο είναι

Διαβάστε περισσότερα

Δοµές Δεδοµένων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2

Δοµές Δεδοµένων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2 Δοµές Δεδοµένων Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2 Δοµές Δεδοµένων (Αναπαράσταση,) οργάνωση και διαχείριση συνόλων αντικειµένων για αποδοτική ενηµέρωση και ανάκτηση πληροφορίας.

Διαβάστε περισσότερα

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ Κωδικός Θ: ΤΠ3001, Κωδικός Ε: ΤΠ3101 (ΜΕΥ/Υ) Ώρες (Θ - Ε): 4-2 Προαπαιτούμενα: Δρ. ΒΙΔΑΚΗΣ ΝΙΚΟΣ ΕΡΓΑΣΤΗΡΙΟ 7 Ουρά (Queue) Queue Μάθημα: Δομές Δεδομένων & Αλγόριθμοι

Διαβάστε περισσότερα

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

Πανεπιστηµιο Πειραιως Σχολη Τεχνολογιων Πληροφορικης και Επικοινωνιων Τµηµα Ψηφιακων Συστηµατων οµές εδοµένων η Εργασία Πανεπιστηµιο Πειραιως Σχολη Τεχνολογιων Πληροφορικης και Επικοινωνιων Τµηµα Ψηφιακων Συστηµατων οµές εδοµένων 2015-2016 1η Εργασία Χρήστος ουλκερίδης Ορέστης Τελέλης 1 Περιγραφή Στην εργασία καλείστε να

Διαβάστε περισσότερα

Στοίβες. ΟΑΤ της Στοίβας. Περιγραφή και Υλικό Ανάγνωσης. Αφηρηµένοι Τύποι εδοµένων (AΤ )

Στοίβες. ΟΑΤ της Στοίβας. Περιγραφή και Υλικό Ανάγνωσης. Αφηρηµένοι Τύποι εδοµένων (AΤ ) Περιγραφή και Υλικό Ανάγνωσης Στοίβες ΟΑφηρηµένος Τύπος εδοµένων της Στοίβας (tack Abstract Data Type (ADT)) (..) Εφαρµογές για Στοίβες (..) Υλοποίηση µε βάση πίνακες (..) Στοίβα βασισµένη σε πίνακα η

Διαβάστε περισσότερα

Δομές Δεδομένων - Εργαστήριο 5. Ουρές Προτεραιότητας

Δομές Δεδομένων - Εργαστήριο 5. Ουρές Προτεραιότητας Ουρές Προτεραιότητας Ουρά Προτεραιότητας (Priority Queue) Μια συλλογή αντικειμένων που χαρακτηρίζονται από μια συγκρίσιμη προτεραιότητα. Έχει την λογική εικόνα μιας δομής δεδομένων όπου, αντικείμενα εισέρχονται

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 7: Ενθυλάκωση (encapsulation), Τροποποιητές(modifiers) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ενθυλάκωση -Τροποποιητές Πρόσβασης (Access Modifiers), public, protected, private,

Διαβάστε περισσότερα

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

Κεφάλαιο 5 Συλλογές, Στοίβες και Ουρές Κεφάλαιο 5 Συλλογές, Στοίβες και Ουρές Περιεχόμενα 5.1 Αφηρημένοι τύποι δεδομένων... 94 5.2 Συλλογές και Επαναλήπτες... 95 5.1.1 Εφαρμογή: Υλοποίηση λιστών γειτνίασης γραφήματος... 96 5.2 Στοίβα... 97

Διαβάστε περισσότερα

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

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας ΚΕΦΑΛΑΙΟ 8: Αφηρηµένοι τύποι δεδοµένων 8.1 οµές δεδοµένων (data structures) 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας Αδόµητα δεδοµένα οδός Ζέας

Διαβάστε περισσότερα

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

Αλγόριθμοι Ταξινόμησης Μέρος 3 Αλγόριθμοι Ταξινόμησης Μέρος 3 Μανόλης Κουμπαράκης 1 Ταξινόμηση με Ουρά Προτεραιότητας Θα παρουσιάσουμε τώρα δύο αλγόριθμους ταξινόμησης που χρησιμοποιούν μια ουρά προτεραιότητας για την υλοποίηση τους.

Διαβάστε περισσότερα

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 8: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αφηρημένοι Τύποι Δεδομένων (ΑΤΔ) Οι ΑΤΔ Στοίβα και Ουρά Υλοποίηση των ΑΤΔ Στοίβα και Ουρά με Στατική Δέσμευση

Διαβάστε περισσότερα

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 10: Λίστες Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εύρεση, εισαγωγή, διαγραφή) Σύγκριση Συνδεδεμένων Λιστών με Πίνακες

Διαβάστε περισσότερα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ουρές προτεραιότητας Κεφάλαιο 9. Ε. Μαρκάκης Επίκουρος Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ουρές προτεραιότητας Κεφάλαιο 9. Ε. Μαρκάκης Επίκουρος Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Ουρές προτεραιότητας Κεφάλαιο 9 Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Ουρές προτεραιότητας Στοιχειώδεις υλοποιήσεις Δοµή δεδοµένων σωρού Αλγόριθµοι σε σωρούς Ο αλγόριθµος heapsort Δοµές

Διαβάστε περισσότερα

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Εισαγωγή στη γλώσσα προγραμματισμού JAVA Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Το πρώτο φλιτζάνι Java Λίστα με τα απαραίτητα Το πρώτο μου πρόγραμμα(hello World) Συνεχίζοντας

Διαβάστε περισσότερα

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

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι 1 ΕΙΣΑΓΩΓΗ Η γλώσσα προγραµµατισµού Java είναι ισχυρά τυποποιηµένη (strongly typed), που σηµαίνει ότι κάθε µεταβλητή και κάθε έκφραση έχει κάποιο τύπο, ο οποίος πρέπει να είναι γνωστός κατά το χρόνο της

Διαβάστε περισσότερα

Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εύρεση, εισαγωγή, διαγραφή) - Σύγκριση Συνδεδεμένων Λιστών με Πίνακες

Διαβάστε περισσότερα

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ Κωδικός Θ: ΤΠ3001, Κωδικός Ε: ΤΠ3101 (ΜΕΥ/Υ) Ώρες (Θ - Ε): 4-2 Προαπαιτούμενα: Δρ. ΒΙΔΑΚΗΣ ΝΙΚΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Sequential & Binary Search Σειριακή & Δυαδική Αναζήτηση

Διαβάστε περισσότερα

Φροντιστήριο 4 Σκελετοί Λύσεων

Φροντιστήριο 4 Σκελετοί Λύσεων Φροντιστήριο 4 Σκελετοί Λύσεων Άσκηση 1 Υποθέτουμε πως οι λίστες είναι υλοποιημένες χρησιμοποιώντας τις πιο κάτω δομές. typedef struct Node{ type data; struct node *next; node; node *top; list; Υλοποιούμε

Διαβάστε περισσότερα

Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθμος ταξινόμησης HeapSort

Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθμος ταξινόμησης HeapSort Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθμος ταξινόμησης HeapSort ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 9-1 Ουρά προτεραιότητας

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή

Διαβάστε περισσότερα

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

Δομές Δεδομένων. Λουκάς Γεωργιάδης. http://www.cs.uoi.gr/~loukas/courses/data_structures/ email: loukas@cs.uoi.gr Δομές Δεδομένων http://www.cs.uoi.gr/~loukas/courses/data_structures/ Λουκάς Γεωργιάδης email: loukas@cs.uoi.gr Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δεδομένα: Σύνολο από πληροφορίες που

Διαβάστε περισσότερα

Ταξινόμηση: Εισαγωγικά. Ταξινόμηση (Sor ng) Αλγόριθμοι Απλής Ταξινόμησης. Βασικά Βήματα των Αλγορίθμων

Ταξινόμηση: Εισαγωγικά. Ταξινόμηση (Sor ng) Αλγόριθμοι Απλής Ταξινόμησης. Βασικά Βήματα των Αλγορίθμων Ταξινόμηση: Εισαγωγικά Ταξινόμηση (Sor ng) Ορέστης Τελέλης Βασικό πρόβλημα για την Επιστήμη των Υπολογιστών. π.χ. αλφαβητική σειρά, πωλήσεις ανά τιμή, πόλεις με βάση πληθυσμό, Μπορεί να είναι ένα πρώτο

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.

Διαβάστε περισσότερα

Διορθώσεις σελ

Διορθώσεις σελ Διορθώσεις σελ. 73-74 # Τώρα ο άνθρωπος σκέφτεται έναν αριθμό από 1 έως 1000 Ν = 1000 print Σκέψου έναν αριθμό από το 1 έως το, Ν guesses = 0 found = False first = 1 last = N while not found and guesses

Διαβάστε περισσότερα

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

Στοιχεία Αλγορίθµων και Πολυπλοκότητας Στοιχεία Αλγορίθµων και Πολυπλοκότητας Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 1 / 16 «Ζέσταµα» Να γράψετε τις συναρτήσεις

Διαβάστε περισσότερα

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ. Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ. Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο Υλοποίηση Στοίβας και Ουράς µε Συνδεδεµένες Λίστες http://aetos.it.teithe.gr/~demos/teaching_gr.html Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ

Διαβάστε περισσότερα

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων Αντικείµενα ηµιουργία και χρησιµοποίηση αντικειµένων ηµιουργία αντικειµένων Για να δηµιουργήσω ένα νέο αντικείµενο χρησιµοποιώ τον τελεστή new µε τοόνοµατηςκλάσηςαπότηνοποίαθέλωναδηµιουργήσωένααντικείµενο,

Διαβάστε περισσότερα