SlideShare a Scribd company logo
1 of 15
Εισαγωγή στις Αρχές Της
Επιστήμης των ΗΥ
Κεφάλαιο 2_2_8: Βασικές αλγοριθμικές λειτουργίες σε δομές
δεδομένων
Ιωάννου Γιαννάκης
30/12/2015
Βασικές αλγοριθμικές λειτουργίες σε δομές
δεδομένων
Οι δομές δεδομένων διαθέτουν οργανωμένα δεδομένα, στα οποία μπορούν να
γίνουν διάφορες επεξεργασίες. Οι βασικές λειτουργίες ή πράξεις επί των δομών
δεδομένων είναι οι ακόλουθες:
 Προσπέλαση (access), πρόσβαση σε δεδομένα με σκοπό την ανάγνωση ή
εγγραφή ή μετακίνηση.
 Ανάκτηση (retrieval), η με οποιονδήποτε τρόπο λήψη (ανάγνωση) του
περιεχομένου ενός κόμβου.
 Αναζήτηση (searching) ενός συνόλου στοιχείων δεδομένων προκειμένου να
εντοπιστούν ένα ή περισσότερα στοιχεία, που έχουν μια δεδομένη ιδιότητα.
 Εισαγωγή (insertion), η προσθήκη ή δημιουργία νέων κόμβων σε μια υπάρχουσα
δομή.
 Μεταβολή ή τροποποίηση (modifi cation), η αλλαγή του περιεχομένου ενός
κόμβου.
 Διαγραφή (deletion) ή ακύρωση που συνιστά το αντίθετο της εισαγωγής.
 Ταξινόμηση (sorting), όπου τα στοιχεία μιας δομής διατάσσονται κατά αύξουσα ή
φθίνουσα τάξη.
Άλλες λειτουργίες είναι η συγχώνευση (merging), κατά την οποία δύο ή περισσότερες
ταξινομημένες δομές συνενώνονται σε μια ενιαία δομή, η προσάρτηση (append),
κατά την οποία μία δομή επικολλάται στο τέλος μιας άλλης, η αντιγραφή
(copying), κ.ά..
Βασικές αλγοριθμικές λειτουργίες σε δομές
δεδομένων
Στην πράξη σπάνια υπάρχουν όλες οι λειτουργίες σε
μια δομή. Συνήθως παρατηρείται το φαινόμενο μια
δομή δεδομένων να είναι αποδοτικότερη από μια
άλλη για κάποια λειτουργία π.χ. την αναζήτηση, αλλά
λιγότερο αποδοτική για κάποια άλλη λειτουργία, όπως
π.χ. την εισαγωγή.
Αυτό εξηγεί τόσο την ύπαρξη διαφορετικών δομών όσο
και τη σπουδαιότητα της επιλογής της κατάλληλης
δομής κάθε φορά.
Βασικές αλγοριθμικές λειτουργίες σε δομές
δεδομένων
Η πιο συνηθισμένη και απλή δομή δεδομένων είναι ο πίνακας. Οι πίνακες
υποστηρίζονται από όλες σχεδόν τις γλώσσες προγραμματισμού.
Αποτελούνται από ένα σύνολο ομοειδών απλών στοιχείων.
Το μέγεθος ενός πίνακα, δηλαδή το πλήθος των στοιχείων που περιέχει,
συνήθως είναι σταθερό και προκαθορισμένο.
Η αναφορά σε ένα στοιχείο του πίνακα γίνεται με τη χρήση ενός συμβολικού
ονόματος που έχει αποδοθεί στον πίνακα, μαζί με ένα ή περισσότερα
στοιχεία που ονομάζονται δείκτες (indexes). Για παράδειγμα το πέμπτο
στοιχείο του πίνακα Α συμβολίζεται με Α[5].
Οι πίνακες με ένα δείκτη λέγονται μονοδιάστατοι, οι πίνακες με 2 δείκτες
δισδιάστατοι, .... οι πίνακες με ν δείκτες ν-διάστατοι.
Βασικές αλγοριθμικές λειτουργίες σε δομές
δεδομένων
Παράδειγμα 2.23. Εισαγωγή στοιχείων σε πίνακα
Είσοδος δεδομένων αγνώστου πλήθους
Στο επόμενο τμήμα αλγορίθμου εισάγονται θετικοί αριθμοί στο μονοδιάστατο πίνακα
Α. Δεν είναι γνωστός ο αριθμός των στοιχείων που θα εισαχθούν, αλλά έχει
συμφωνηθεί ότι το τέλος της εισαγωγής θα καθοριστεί από την είσοδο ενός
αρνητικού αριθμού (ή γενικότερα μιας τιμής που δεν μπορεί να ανήκει στο σύνολο
τιμών του πίνακα).
i ← 0
Διάβασε Κ
Όσο Κ ≥ 0 επανάλαβε
i ← i + 1
A[i] ← K
Διάβασε Κ
Τέλος_επανάληψης
n ← i
Εδώ χρησιμοποιείται η εντολή επανάληψης Όσο συνθήκη επανάλαβε. Απαιτεί ένα
αρχικό διάβασμα προκειμένου να ενεργοποιηθεί η συνθήκη συνέχισης της
επανάληψης. Κάθε θετική τιμή που διαβάζεται καταχωρείται σε επόμενο στοιχείο
του πίνακα με τη χρήση του δείκτη i. Στο τέλος φυλάσσεται στη μεταβλητή n η
τρέχουσα τιμή του i, ώστε να είναι γνωστό το πλήθος των στοιχείων του πίνακα
στη συνέχεια.
Βασικές αλγοριθμικές λειτουργίες σε δομές
δεδομένων
Είσοδος δεδομένων γνωστού πλήθους
Όταν είναι γνωστό το πλήθος n των τιμών μπορεί να χρησιμοποιηθεί η εντολή
επανάληψης Για … από …μέχρι. Η πιο απλή εκδοχή είναι η επόμενη.
Για i από 1 μέχρι n
Διάβασε Α[i]
Τέλος_επανάληψης
Σε όλες τις προηγούμενες περιπτώσεις εισαγωγής τιμών σε πίνακα, ο χρήστης του
σχετικού προγράμματος μπορεί να υποβοηθείται με την εμφάνιση κατάλληλων
μηνυμάτων.
Πριν από κάθε επεξεργασία πίνακα απαιτείται να εισαχθούν δεδομένα σε αυτόν. Η
εισαγωγή δεδομένων σε πίνακα μπορεί να είναι επίπονη διαδικασία, ιδιαίτερα αν ο
πίνακας είναι μεγάλος. Επιπλέον τα λάθη πληκτρολόγησης είναι πολύ
συνηθισμένα και πρέπει να υπάρχει τρόπος διόρθωσης κάποιων τιμών.
Βασικές αλγοριθμικές λειτουργίες σε δομές
δεδομένων
Παράδειγμα 2.24. Εκτύπωση πίνακα
Η εκτύπωση των στοιχείων του πίνακα, καθώς και της
θέσης που υπάρχει το στοιχείο, επιτυγχάνεται με τις
επόμενες εντολές:
Για i από 1 μέχρι n
Εμφάνισε i, Α[i]
Τέλος_επανάληψης
Βασικές αλγοριθμικές λειτουργίες σε δομές
δεδομένων
Παράδειγμα 2.25. Τροποποίηση στοιχείων πίνακα
Μετά την εισαγωγή στοιχείων και την εκτύπωση μπορεί να απαιτείται η
διόρθωση ενός ή περισσοτέρων στοιχείων.
Διάβασε i
Όσο i > 0 και i <= n επανάλαβε
Εμφάνισε Α[i]
Διάβασε Α[i]
Διάβασε i
Τέλος_επανάληψης
Στον αλγόριθμο αυτό η επανάληψη εκτελείται όσο δίνεται τιμή του i εντός
ορίων. Κάθε φορά εμφανίζεται το στοιχείο Α[i] και ζητείται η εισαγωγή
μιας άλλης τιμής που την αντικαθιστά.
Μετά την εισαγωγή δεδομένων σε ένα πίνακα μπορεί να ακολουθήσει η
επεξεργασία του. Στη συνέχεια παρουσιάζονται μερικές συνηθισμένες
επεξεργασίες πινάκων.
Βασικές αλγοριθμικές λειτουργίες σε δομές
δεδομένων
Παράδειγμα 2.26. Άθροισμα στοιχείων πίνακα
Δίδεται ο μονοδιάστατος πίνακας Β που περιέχει Ν
βαθμούς μαθητών. Να αναπτυχθεί αλγόριθμος, ο
οποίος να υπολογίζει και να εμφανίζει το μέσο όρο
βαθμολογίας των μαθητών.
Βασικές αλγοριθμικές λειτουργίες σε δομές
δεδομένων
Για τη δημιουργία προγράμματος που να υλοποιεί τον παραπάνω
αλγόριθμο και προκειμένου να γίνει ο έλεγχος ορθότητας,
απαιτείται και η εισαγωγή κάποιων δεδομένων.
Σύμφωνα με όσα αναφέρθηκαν στις προηγούμενες παραγράφους
αυτό μπορεί να γίνει π.χ. με τον επόμενο αλγόριθμο.
Βασικές αλγοριθμικές λειτουργίες σε δομές
δεδομένων
Παράδειγμα 2.27. Μέγιστο στοιχείο πίνακα
Δίδεται ο μονοδιάστατος πίνακας Β που περιέχει Ν βαθμούς
μαθητών.
Να αναπτυχθεί αλγόριθμος, ο οποίος να βρίσκει και να εμφανίζει την
υψηλότερη βαθμολογία.
Βασικές αλγοριθμικές λειτουργίες σε δομές
δεδομένων
Δισδιάστατοι πίνακες
Για την εισαγωγή δεδομένων σε ένα δισδιάστατο πίνακα
Α που έχει Ν γραμμές και Μ στήλες, θα μπορούσε να
αναπτυχθεί το ακόλουθο τμήμα αλγορίθμου:
Για i από 1 μέχρι Ν
Για j από 1 μέχρι Μ
Διάβασε Α[i, j]
Τέλος_επανάληψης
Τέλος_επανάληψης
Βασικές αλγοριθμικές λειτουργίες σε δομές
δεδομένων
Παράδειγμα 2.28. Επεξεργασία δισδιάστατου πίνακα
Να αναπτυχθεί αλγόριθμος ο οποίος με δεδομένο το πλήθος των μαθητών της Γ’
γυμνασίου ενός σχολείου και τους βαθμούς των μαθητών στη γυμναστική, σε
καθένα από τα 3 τρίμηνα, να υπολογίζει και να επιστρέφει το μέσο όρο βαθμολογίας
κάθε μαθητή και το συνολικό μέσο όρο.
Ο πίνακας Β έχει Ν γραμμές και 3 στήλες. Σε κάθε μία γραμμή υπάρχουν οι βαθμολογίες
των τριών τριμήνων για κάθε ένα μαθητή.
Βασικές αλγοριθμικές λειτουργίες σε δομές
δεδομένων
Παράδειγμα 2.29. Σειριακή αναζήτηση
Σε ένα μονοδιάστατο πίνακα είναι καταχωρημένα τα ονόματα των σχολείων που συμμετέχουν σε έναν διαγωνισμό επιχειρηματικότητας και έχουν
κατασκευάσει ένα χώρο παρουσίασης του επιχειρηματικού τους σχεδίου (που εν συντομία θα λέγεται περίπτερο). Ο αριθμός του
περιπτέρου κάθε σχολείου είναι η θέση του σχολείου στον πίνακα. Δηλαδή στο πρώτο κελί του πίνακα είναι το όνομα του σχολείου που έχει
το περίπτερο με αριθμό 1, στο δεύτερο κελί του πίνακα είναι το όνομα του σχολείου που έχει το περίπτερο με αριθμό 2 κ.ο.κ. Να αναπτυχθεί
αλγόριθμος ο οποίος με δεδομένο το πλήθος των σχολείων που συμμετέχουν στο διαγωνισμό με περίπτερο και τον πίνακα με τα ονόματα
των σχολείων, να διαβάζει το όνομα ενός σχολείου και να ψάχνει στον πίνακα, αν υπάρχει αυτό το σχολείο. Ο αλγόριθμος θα επιστρέφει το
αποτέλεσμα της αναζήτησης, δηλαδή αν υπάρχει ή όχι το αναζητούμενο σχολείο, και αν υπάρχει τη θέση του στον πίνακα, αλλιώς ως θέση
την τιμή μηδέν.
Αλγόριθμος Αναζήτηση
Δεδομένα // Α, Ν //
Εμφάνισε ''Αναζητούμενο σχολείο:''
Διάβασε Κ
i ← 1
Βρέθηκε ← Ψευδής
Θέση ← 0
Όσο i ≤ Ν και Βρέθηκε = Ψευδής επανάλαβε
Αν Κ = Α[i] τότε
Θέση ← i
Βρέθηκε ← Αληθής
αλλιώς
I ← i + 1
Tέλος_αν
Τέλος_επανάληψης
Αποτελέσματα // Βρέθηκε, Θέση //
Τέλος Αναζήτηση
Τα αποτελέσματα είναι η μεταβλητή Βρέθηκε, η οποία, αν είναι αληθής σημαίνει ότι η αναζήτηση ήταν επιτυχής και η μεταβλητή Θέση, που έχει τη
θέση του στοιχείου στον πίνακα, εφ’ όσον βρέθηκε, αλλιώς θα έχουν την τιμή Ψευδής και μηδέν αντίστοιχα. Η τιμή μηδέν δεν μπορεί να είναι
θέση πίνακα.
Βασικές αλγοριθμικές λειτουργίες σε δομές
δεδομένων
Παράδειγμα 2.30. Ταξινόμηση με επιλογή
Να αναπτυχθεί αλγόριθμος ο οποίος με
δεδομένο το πλήθος των μαθητών της Γ’
γυμνασίου ενός σχολείου και τον τελικό
βαθμό του κάθε μαθητή στο μάθημα
«Πληροφορική», να ταξινομεί τον πίνακα
των βαθμών σε αύξουσα τάξη, από το
μικρότερο στο μεγαλύτερο βαθμό. Στη
συνέχεια να επιστρέφει τον ταξινομημένο
πίνακα.
Η μέθοδος της ταξινόμησης με επιλογή
βασίζεται στα ακόλουθα τρία βήματα:
α. επιλογή του στοιχείου με την ελάχιστη τιμή.
β. ανταλλαγή του με το πρώτο στοιχείο.
γ. επανάληψη των (α), (β) με τα υπόλοιπα
στοιχεία.

More Related Content

Viewers also liked

Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 3 1 2
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 3 1 2Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 3 1 2
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 3 1 2Ιωάννου Γιαννάκης
 
Εισαγωγή στις αρχές της επιστήμης των ΗΥκεφ 2 3 1
Εισαγωγή στις αρχές της επιστήμης των ΗΥκεφ 2 3 1Εισαγωγή στις αρχές της επιστήμης των ΗΥκεφ 2 3 1
Εισαγωγή στις αρχές της επιστήμης των ΗΥκεφ 2 3 1Ιωάννου Γιαννάκης
 
Linux πσρακολούθηση διεργασιών, history
Linux πσρακολούθηση διεργασιών, historyLinux πσρακολούθηση διεργασιών, history
Linux πσρακολούθηση διεργασιών, historyΙωάννου Γιαννάκης
 
03 διαχείριση συστήματος λογισμικού
03 διαχείριση συστήματος   λογισμικού03 διαχείριση συστήματος   λογισμικού
03 διαχείριση συστήματος λογισμικούΙωάννου Γιαννάκης
 
02 γνωριμία με το περιβάλλον κειμένου εντολή man
02 γνωριμία με το περιβάλλον κειμένου εντολή man02 γνωριμία με το περιβάλλον κειμένου εντολή man
02 γνωριμία με το περιβάλλον κειμένου εντολή manΙωάννου Γιαννάκης
 

Viewers also liked (20)

Python Κεφ. 1.6 Λίστες
Python Κεφ. 1.6 ΛίστεςPython Κεφ. 1.6 Λίστες
Python Κεφ. 1.6 Λίστες
 
Python Κεφ. 1.6.1 Πίνακες
Python Κεφ. 1.6.1 ΠίνακεςPython Κεφ. 1.6.1 Πίνακες
Python Κεφ. 1.6.1 Πίνακες
 
09 εντολές mkdir rmdir
09 εντολές mkdir rmdir09 εντολές mkdir rmdir
09 εντολές mkdir rmdir
 
Linux σωληνώσεις sort, tee
Linux σωληνώσεις sort, teeLinux σωληνώσεις sort, tee
Linux σωληνώσεις sort, tee
 
Εντολές lp wc grep
Εντολές lp wc grepΕντολές lp wc grep
Εντολές lp wc grep
 
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 3 1 2
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 3 1 2Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 3 1 2
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 3 1 2
 
Εισαγωγή στις αρχές της επιστήμης των ΗΥκεφ 2 3 1
Εισαγωγή στις αρχές της επιστήμης των ΗΥκεφ 2 3 1Εισαγωγή στις αρχές της επιστήμης των ΗΥκεφ 2 3 1
Εισαγωγή στις αρχές της επιστήμης των ΗΥκεφ 2 3 1
 
Linux εντολές cp ,mv, ln
Linux εντολές cp ,mv, lnLinux εντολές cp ,mv, ln
Linux εντολές cp ,mv, ln
 
05 απόλυτη σχετική διαδρομή
05 απόλυτη  σχετική διαδρομή05 απόλυτη  σχετική διαδρομή
05 απόλυτη σχετική διαδρομή
 
Linux εντολή find
Linux εντολή findLinux εντολή find
Linux εντολή find
 
App inventor2 εφαρμογή 1 (Hello purr)
App inventor2 εφαρμογή 1 (Hello purr)App inventor2 εφαρμογή 1 (Hello purr)
App inventor2 εφαρμογή 1 (Hello purr)
 
Eντολή Chmod
Eντολή ChmodEντολή Chmod
Eντολή Chmod
 
Linux εντολές lp, wc, grep
Linux εντολές lp, wc, grepLinux εντολές lp, wc, grep
Linux εντολές lp, wc, grep
 
01 bash
01 bash01 bash
01 bash
 
08 εντολή cd
08 εντολή cd08 εντολή cd
08 εντολή cd
 
10 εντολές cp mv rm ln
10 εντολές cp mv rm ln10 εντολές cp mv rm ln
10 εντολές cp mv rm ln
 
07 εντολές pwd ls
07 εντολές pwd ls07 εντολές pwd ls
07 εντολές pwd ls
 
Linux πσρακολούθηση διεργασιών, history
Linux πσρακολούθηση διεργασιών, historyLinux πσρακολούθηση διεργασιών, history
Linux πσρακολούθηση διεργασιών, history
 
03 διαχείριση συστήματος λογισμικού
03 διαχείριση συστήματος   λογισμικού03 διαχείριση συστήματος   λογισμικού
03 διαχείριση συστήματος λογισμικού
 
02 γνωριμία με το περιβάλλον κειμένου εντολή man
02 γνωριμία με το περιβάλλον κειμένου εντολή man02 γνωριμία με το περιβάλλον κειμένου εντολή man
02 γνωριμία με το περιβάλλον κειμένου εντολή man
 

Similar to Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 8

Microsoft Access Θεωρία 3/6
Microsoft Access Θεωρία 3/6Microsoft Access Θεωρία 3/6
Microsoft Access Θεωρία 3/6Michael Ntallas
 
αναπαράσταση αλγορίθμων και δεδομένων
αναπαράσταση αλγορίθμων και δεδομένωναναπαράσταση αλγορίθμων και δεδομένων
αναπαράσταση αλγορίθμων και δεδομένωνMariaProGr
 
ECDL Excel Σημειώσεις 4/7
ECDL Excel Σημειώσεις 4/7ECDL Excel Σημειώσεις 4/7
ECDL Excel Σημειώσεις 4/7Michael Ntallas
 
Κεφ. 3 Δομές Δεδομένων και Αλγόριθμοι
Κεφ. 3 Δομές Δεδομένων και ΑλγόριθμοιΚεφ. 3 Δομές Δεδομένων και Αλγόριθμοι
Κεφ. 3 Δομές Δεδομένων και ΑλγόριθμοιΙωάννου Γιαννάκης
 
Kef10 b diadikasies
Kef10 b diadikasiesKef10 b diadikasies
Kef10 b diadikasiesmnikol
 
Οδηγίες Επεξεργασίας Δεδομένων
Οδηγίες Επεξεργασίας ΔεδομένωνΟδηγίες Επεξεργασίας Δεδομένων
Οδηγίες Επεξεργασίας Δεδομένωνkonstantinmar
 
διαγωνισμα δομεσ δεδομενων πινακεσ
διαγωνισμα δομεσ δεδομενων   πινακεσδιαγωνισμα δομεσ δεδομενων   πινακεσ
διαγωνισμα δομεσ δεδομενων πινακεσeducast
 
Algorithms
AlgorithmsAlgorithms
Algorithmspapettas
 
Λίστες & Συναρτήσεις στην Python
Λίστες & Συναρτήσεις στην PythonΛίστες & Συναρτήσεις στην Python
Λίστες & Συναρτήσεις στην PythonPanagiotis Mastrapas
 
Διαγώνισμα Κεφάλαια 7- 8- 9
Διαγώνισμα Κεφάλαια 7- 8- 9Διαγώνισμα Κεφάλαια 7- 8- 9
Διαγώνισμα Κεφάλαια 7- 8- 9educast
 
Διαγώνισμα 2o Υποπρογράμματα
Διαγώνισμα 2o ΥποπρογράμματαΔιαγώνισμα 2o Υποπρογράμματα
Διαγώνισμα 2o Υποπρογράμματαeducast
 
ΑΕΠΠ - Επαναλητπικό Διαγώνισμα
ΑΕΠΠ - Επαναλητπικό ΔιαγώνισμαΑΕΠΠ - Επαναλητπικό Διαγώνισμα
ΑΕΠΠ - Επαναλητπικό ΔιαγώνισμαBillonious
 
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 7_2
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 7_2Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 7_2
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 7_2Ιωάννου Γιαννάκης
 
Διαγώνισμα Δομές Δεδομένων 1
Διαγώνισμα Δομές Δεδομένων 1Διαγώνισμα Δομές Δεδομένων 1
Διαγώνισμα Δομές Δεδομένων 1educast
 
Epanal programmatismos 2017_epal_panellinies_net
Epanal programmatismos 2017_epal_panellinies_netEpanal programmatismos 2017_epal_panellinies_net
Epanal programmatismos 2017_epal_panellinies_netGiannis Tsimpinos
 
Ο ρόλος της αναπαράστασης των δεδομένων στον προγραμματισμό | Αναστάσιος Λαδι...
Ο ρόλος της αναπαράστασης των δεδομένων στον προγραμματισμό | Αναστάσιος Λαδι...Ο ρόλος της αναπαράστασης των δεδομένων στον προγραμματισμό | Αναστάσιος Λαδι...
Ο ρόλος της αναπαράστασης των δεδομένων στον προγραμματισμό | Αναστάσιος Λαδι...WROHellas
 

Similar to Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 8 (20)

Microsoft Access Θεωρία 3/6
Microsoft Access Θεωρία 3/6Microsoft Access Θεωρία 3/6
Microsoft Access Θεωρία 3/6
 
αναπαράσταση αλγορίθμων και δεδομένων
αναπαράσταση αλγορίθμων και δεδομένωναναπαράσταση αλγορίθμων και δεδομένων
αναπαράσταση αλγορίθμων και δεδομένων
 
ECDL Excel Σημειώσεις 4/7
ECDL Excel Σημειώσεις 4/7ECDL Excel Σημειώσεις 4/7
ECDL Excel Σημειώσεις 4/7
 
Κεφ. 3 Δομές Δεδομένων και Αλγόριθμοι
Κεφ. 3 Δομές Δεδομένων και ΑλγόριθμοιΚεφ. 3 Δομές Δεδομένων και Αλγόριθμοι
Κεφ. 3 Δομές Δεδομένων και Αλγόριθμοι
 
Kef10 b diadikasies
Kef10 b diadikasiesKef10 b diadikasies
Kef10 b diadikasies
 
Οδηγίες Επεξεργασίας Δεδομένων
Οδηγίες Επεξεργασίας ΔεδομένωνΟδηγίες Επεξεργασίας Δεδομένων
Οδηγίες Επεξεργασίας Δεδομένων
 
διαγωνισμα δομεσ δεδομενων πινακεσ
διαγωνισμα δομεσ δεδομενων   πινακεσδιαγωνισμα δομεσ δεδομενων   πινακεσ
διαγωνισμα δομεσ δεδομενων πινακεσ
 
Python Programming, 1st Test 2016-17
Python Programming, 1st Test 2016-17Python Programming, 1st Test 2016-17
Python Programming, 1st Test 2016-17
 
Algorithms
AlgorithmsAlgorithms
Algorithms
 
Λίστες & Συναρτήσεις στην Python
Λίστες & Συναρτήσεις στην PythonΛίστες & Συναρτήσεις στην Python
Λίστες & Συναρτήσεις στην Python
 
Διαγώνισμα Κεφάλαια 7- 8- 9
Διαγώνισμα Κεφάλαια 7- 8- 9Διαγώνισμα Κεφάλαια 7- 8- 9
Διαγώνισμα Κεφάλαια 7- 8- 9
 
Διαγώνισμα 2o Υποπρογράμματα
Διαγώνισμα 2o ΥποπρογράμματαΔιαγώνισμα 2o Υποπρογράμματα
Διαγώνισμα 2o Υποπρογράμματα
 
ΑΕΠΠ - Επαναλητπικό Διαγώνισμα
ΑΕΠΠ - Επαναλητπικό ΔιαγώνισμαΑΕΠΠ - Επαναλητπικό Διαγώνισμα
ΑΕΠΠ - Επαναλητπικό Διαγώνισμα
 
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 7_2
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 7_2Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 7_2
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 7_2
 
ΛΟΓΙΣΤΙΚΑ ΦΥΛΛΑ
ΛΟΓΙΣΤΙΚΑ ΦΥΛΛΑΛΟΓΙΣΤΙΚΑ ΦΥΛΛΑ
ΛΟΓΙΣΤΙΚΑ ΦΥΛΛΑ
 
Διαγώνισμα Δομές Δεδομένων 1
Διαγώνισμα Δομές Δεδομένων 1Διαγώνισμα Δομές Δεδομένων 1
Διαγώνισμα Δομές Δεδομένων 1
 
SQL1v3
SQL1v3SQL1v3
SQL1v3
 
SQL7v2
SQL7v2SQL7v2
SQL7v2
 
Epanal programmatismos 2017_epal_panellinies_net
Epanal programmatismos 2017_epal_panellinies_netEpanal programmatismos 2017_epal_panellinies_net
Epanal programmatismos 2017_epal_panellinies_net
 
Ο ρόλος της αναπαράστασης των δεδομένων στον προγραμματισμό | Αναστάσιος Λαδι...
Ο ρόλος της αναπαράστασης των δεδομένων στον προγραμματισμό | Αναστάσιος Λαδι...Ο ρόλος της αναπαράστασης των δεδομένων στον προγραμματισμό | Αναστάσιος Λαδι...
Ο ρόλος της αναπαράστασης των δεδομένων στον προγραμματισμό | Αναστάσιος Λαδι...
 

More from Ιωάννου Γιαννάκης (14)

Karel The Robot
Karel The RobotKarel The Robot
Karel The Robot
 
MakeCode.ppt
MakeCode.pptMakeCode.ppt
MakeCode.ppt
 
App inventor2
App inventor2App inventor2
App inventor2
 
Pencil code
Pencil codePencil code
Pencil code
 
Cloud computing
 Cloud computing Cloud computing
Cloud computing
 
Proxy server
Proxy serverProxy server
Proxy server
 
Alice 3
Alice 3Alice 3
Alice 3
 
Εισαγωγή στο Alice 3
Εισαγωγή στο Alice 3Εισαγωγή στο Alice 3
Εισαγωγή στο Alice 3
 
11 συγχρονισμός ώρας συστήματος
11 συγχρονισμός ώρας συστήματος11 συγχρονισμός ώρας συστήματος
11 συγχρονισμός ώρας συστήματος
 
06 εντολές clear cal date finger
06 εντολές clear cal date finger06 εντολές clear cal date finger
06 εντολές clear cal date finger
 
04 σύστημα αρχείων
04 σύστημα αρχείων04 σύστημα αρχείων
04 σύστημα αρχείων
 
Python Κεφ. 1.5 συναρτήσεις
Python Κεφ. 1.5 συναρτήσειςPython Κεφ. 1.5 συναρτήσεις
Python Κεφ. 1.5 συναρτήσεις
 
Python Κεφ. 1.4 Δομή Επανάληψης
Python Κεφ. 1.4 Δομή ΕπανάληψηςPython Κεφ. 1.4 Δομή Επανάληψης
Python Κεφ. 1.4 Δομή Επανάληψης
 
Κεφ. 1.3 Δομή επιλογής
Κεφ. 1.3 Δομή επιλογήςΚεφ. 1.3 Δομή επιλογής
Κεφ. 1.3 Δομή επιλογής
 

Recently uploaded

Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξειςΓιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξειςΟΛΓΑ ΤΣΕΧΕΛΙΔΟΥ
 
Επίσκεψη στο 12ο Γυμνάσιο Πάτρας
Επίσκεψη          στο 12ο Γυμνάσιο ΠάτραςΕπίσκεψη          στο 12ο Γυμνάσιο Πάτρας
Επίσκεψη στο 12ο Γυμνάσιο ΠάτραςDimitra Mylonaki
 
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptxAthina Tziaki
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 1ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 1ο ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 1ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 1ο Χρύσα Παπακωνσταντίνου
 
Μαθητικά συμβούλια .
Μαθητικά συμβούλια                                  .Μαθητικά συμβούλια                                  .
Μαθητικά συμβούλια .Dimitra Mylonaki
 
Επίσκεψη στο 11ο Γυμνάσιο Πάτρας
Επίσκεψη              στο 11ο Γυμνάσιο ΠάτραςΕπίσκεψη              στο 11ο Γυμνάσιο Πάτρας
Επίσκεψη στο 11ο Γυμνάσιο ΠάτραςDimitra Mylonaki
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2οΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2οΧρύσα Παπακωνσταντίνου
 
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptxΠασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx36dimperist
 
9.SPSS και δείκτες περιγραφικής στατιστικής.pdf
9.SPSS και δείκτες περιγραφικής στατιστικής.pdf9.SPSS και δείκτες περιγραφικής στατιστικής.pdf
9.SPSS και δείκτες περιγραφικής στατιστικής.pdfssuser2f8893
 
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docx
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docxΗ Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docx
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docxeucharis
 
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑ
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑΜια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑ
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑDimitra Mylonaki
 
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptxΠασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx36dimperist
 
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ 2008
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ  2008Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ  2008
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ 2008Θεόδωρος Μαραγκούλας
 
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptxΠασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx36dimperist
 
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνηΣουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνηTheodora Chandrinou
 
Μαθητικές καταλήψεις
Μαθητικές                                  καταλήψειςΜαθητικές                                  καταλήψεις
Μαθητικές καταλήψειςDimitra Mylonaki
 
Επίσκεψη στο 10ο Γυμνάσιο Πάτρας
Επίσκεψη          στο 10ο Γυμνάσιο ΠάτραςΕπίσκεψη          στο 10ο Γυμνάσιο Πάτρας
Επίσκεψη στο 10ο Γυμνάσιο ΠάτραςDimitra Mylonaki
 

Recently uploaded (20)

Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξειςΓιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
 
Επίσκεψη στο 12ο Γυμνάσιο Πάτρας
Επίσκεψη          στο 12ο Γυμνάσιο ΠάτραςΕπίσκεψη          στο 12ο Γυμνάσιο Πάτρας
Επίσκεψη στο 12ο Γυμνάσιο Πάτρας
 
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 1ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 1ο ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 1ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 1ο
 
Μαθητικά συμβούλια .
Μαθητικά συμβούλια                                  .Μαθητικά συμβούλια                                  .
Μαθητικά συμβούλια .
 
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ  : ΕΠΑΝΑΛΗΨΗ 2024ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ  : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
 
Σεβασμός .
Σεβασμός                                   .Σεβασμός                                   .
Σεβασμός .
 
Επίσκεψη στο 11ο Γυμνάσιο Πάτρας
Επίσκεψη              στο 11ο Γυμνάσιο ΠάτραςΕπίσκεψη              στο 11ο Γυμνάσιο Πάτρας
Επίσκεψη στο 11ο Γυμνάσιο Πάτρας
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2οΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
 
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptxΠασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx
 
ΙΣΤΟΡΙΑ Γ΄ ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Γ΄ ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024ΙΣΤΟΡΙΑ Γ΄ ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Γ΄ ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
 
9.SPSS και δείκτες περιγραφικής στατιστικής.pdf
9.SPSS και δείκτες περιγραφικής στατιστικής.pdf9.SPSS και δείκτες περιγραφικής στατιστικής.pdf
9.SPSS και δείκτες περιγραφικής στατιστικής.pdf
 
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docx
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docxΗ Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docx
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docx
 
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑ
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑΜια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑ
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑ
 
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptxΠασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx
 
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ 2008
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ  2008Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ  2008
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ 2008
 
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptxΠασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx
 
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνηΣουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
 
Μαθητικές καταλήψεις
Μαθητικές                                  καταλήψειςΜαθητικές                                  καταλήψεις
Μαθητικές καταλήψεις
 
Επίσκεψη στο 10ο Γυμνάσιο Πάτρας
Επίσκεψη          στο 10ο Γυμνάσιο ΠάτραςΕπίσκεψη          στο 10ο Γυμνάσιο Πάτρας
Επίσκεψη στο 10ο Γυμνάσιο Πάτρας
 

Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 8

  • 1. Εισαγωγή στις Αρχές Της Επιστήμης των ΗΥ Κεφάλαιο 2_2_8: Βασικές αλγοριθμικές λειτουργίες σε δομές δεδομένων Ιωάννου Γιαννάκης 30/12/2015
  • 2. Βασικές αλγοριθμικές λειτουργίες σε δομές δεδομένων Οι δομές δεδομένων διαθέτουν οργανωμένα δεδομένα, στα οποία μπορούν να γίνουν διάφορες επεξεργασίες. Οι βασικές λειτουργίες ή πράξεις επί των δομών δεδομένων είναι οι ακόλουθες:  Προσπέλαση (access), πρόσβαση σε δεδομένα με σκοπό την ανάγνωση ή εγγραφή ή μετακίνηση.  Ανάκτηση (retrieval), η με οποιονδήποτε τρόπο λήψη (ανάγνωση) του περιεχομένου ενός κόμβου.  Αναζήτηση (searching) ενός συνόλου στοιχείων δεδομένων προκειμένου να εντοπιστούν ένα ή περισσότερα στοιχεία, που έχουν μια δεδομένη ιδιότητα.  Εισαγωγή (insertion), η προσθήκη ή δημιουργία νέων κόμβων σε μια υπάρχουσα δομή.  Μεταβολή ή τροποποίηση (modifi cation), η αλλαγή του περιεχομένου ενός κόμβου.  Διαγραφή (deletion) ή ακύρωση που συνιστά το αντίθετο της εισαγωγής.  Ταξινόμηση (sorting), όπου τα στοιχεία μιας δομής διατάσσονται κατά αύξουσα ή φθίνουσα τάξη. Άλλες λειτουργίες είναι η συγχώνευση (merging), κατά την οποία δύο ή περισσότερες ταξινομημένες δομές συνενώνονται σε μια ενιαία δομή, η προσάρτηση (append), κατά την οποία μία δομή επικολλάται στο τέλος μιας άλλης, η αντιγραφή (copying), κ.ά..
  • 3. Βασικές αλγοριθμικές λειτουργίες σε δομές δεδομένων Στην πράξη σπάνια υπάρχουν όλες οι λειτουργίες σε μια δομή. Συνήθως παρατηρείται το φαινόμενο μια δομή δεδομένων να είναι αποδοτικότερη από μια άλλη για κάποια λειτουργία π.χ. την αναζήτηση, αλλά λιγότερο αποδοτική για κάποια άλλη λειτουργία, όπως π.χ. την εισαγωγή. Αυτό εξηγεί τόσο την ύπαρξη διαφορετικών δομών όσο και τη σπουδαιότητα της επιλογής της κατάλληλης δομής κάθε φορά.
  • 4. Βασικές αλγοριθμικές λειτουργίες σε δομές δεδομένων Η πιο συνηθισμένη και απλή δομή δεδομένων είναι ο πίνακας. Οι πίνακες υποστηρίζονται από όλες σχεδόν τις γλώσσες προγραμματισμού. Αποτελούνται από ένα σύνολο ομοειδών απλών στοιχείων. Το μέγεθος ενός πίνακα, δηλαδή το πλήθος των στοιχείων που περιέχει, συνήθως είναι σταθερό και προκαθορισμένο. Η αναφορά σε ένα στοιχείο του πίνακα γίνεται με τη χρήση ενός συμβολικού ονόματος που έχει αποδοθεί στον πίνακα, μαζί με ένα ή περισσότερα στοιχεία που ονομάζονται δείκτες (indexes). Για παράδειγμα το πέμπτο στοιχείο του πίνακα Α συμβολίζεται με Α[5]. Οι πίνακες με ένα δείκτη λέγονται μονοδιάστατοι, οι πίνακες με 2 δείκτες δισδιάστατοι, .... οι πίνακες με ν δείκτες ν-διάστατοι.
  • 5. Βασικές αλγοριθμικές λειτουργίες σε δομές δεδομένων Παράδειγμα 2.23. Εισαγωγή στοιχείων σε πίνακα Είσοδος δεδομένων αγνώστου πλήθους Στο επόμενο τμήμα αλγορίθμου εισάγονται θετικοί αριθμοί στο μονοδιάστατο πίνακα Α. Δεν είναι γνωστός ο αριθμός των στοιχείων που θα εισαχθούν, αλλά έχει συμφωνηθεί ότι το τέλος της εισαγωγής θα καθοριστεί από την είσοδο ενός αρνητικού αριθμού (ή γενικότερα μιας τιμής που δεν μπορεί να ανήκει στο σύνολο τιμών του πίνακα). i ← 0 Διάβασε Κ Όσο Κ ≥ 0 επανάλαβε i ← i + 1 A[i] ← K Διάβασε Κ Τέλος_επανάληψης n ← i Εδώ χρησιμοποιείται η εντολή επανάληψης Όσο συνθήκη επανάλαβε. Απαιτεί ένα αρχικό διάβασμα προκειμένου να ενεργοποιηθεί η συνθήκη συνέχισης της επανάληψης. Κάθε θετική τιμή που διαβάζεται καταχωρείται σε επόμενο στοιχείο του πίνακα με τη χρήση του δείκτη i. Στο τέλος φυλάσσεται στη μεταβλητή n η τρέχουσα τιμή του i, ώστε να είναι γνωστό το πλήθος των στοιχείων του πίνακα στη συνέχεια.
  • 6. Βασικές αλγοριθμικές λειτουργίες σε δομές δεδομένων Είσοδος δεδομένων γνωστού πλήθους Όταν είναι γνωστό το πλήθος n των τιμών μπορεί να χρησιμοποιηθεί η εντολή επανάληψης Για … από …μέχρι. Η πιο απλή εκδοχή είναι η επόμενη. Για i από 1 μέχρι n Διάβασε Α[i] Τέλος_επανάληψης Σε όλες τις προηγούμενες περιπτώσεις εισαγωγής τιμών σε πίνακα, ο χρήστης του σχετικού προγράμματος μπορεί να υποβοηθείται με την εμφάνιση κατάλληλων μηνυμάτων. Πριν από κάθε επεξεργασία πίνακα απαιτείται να εισαχθούν δεδομένα σε αυτόν. Η εισαγωγή δεδομένων σε πίνακα μπορεί να είναι επίπονη διαδικασία, ιδιαίτερα αν ο πίνακας είναι μεγάλος. Επιπλέον τα λάθη πληκτρολόγησης είναι πολύ συνηθισμένα και πρέπει να υπάρχει τρόπος διόρθωσης κάποιων τιμών.
  • 7. Βασικές αλγοριθμικές λειτουργίες σε δομές δεδομένων Παράδειγμα 2.24. Εκτύπωση πίνακα Η εκτύπωση των στοιχείων του πίνακα, καθώς και της θέσης που υπάρχει το στοιχείο, επιτυγχάνεται με τις επόμενες εντολές: Για i από 1 μέχρι n Εμφάνισε i, Α[i] Τέλος_επανάληψης
  • 8. Βασικές αλγοριθμικές λειτουργίες σε δομές δεδομένων Παράδειγμα 2.25. Τροποποίηση στοιχείων πίνακα Μετά την εισαγωγή στοιχείων και την εκτύπωση μπορεί να απαιτείται η διόρθωση ενός ή περισσοτέρων στοιχείων. Διάβασε i Όσο i > 0 και i <= n επανάλαβε Εμφάνισε Α[i] Διάβασε Α[i] Διάβασε i Τέλος_επανάληψης Στον αλγόριθμο αυτό η επανάληψη εκτελείται όσο δίνεται τιμή του i εντός ορίων. Κάθε φορά εμφανίζεται το στοιχείο Α[i] και ζητείται η εισαγωγή μιας άλλης τιμής που την αντικαθιστά. Μετά την εισαγωγή δεδομένων σε ένα πίνακα μπορεί να ακολουθήσει η επεξεργασία του. Στη συνέχεια παρουσιάζονται μερικές συνηθισμένες επεξεργασίες πινάκων.
  • 9. Βασικές αλγοριθμικές λειτουργίες σε δομές δεδομένων Παράδειγμα 2.26. Άθροισμα στοιχείων πίνακα Δίδεται ο μονοδιάστατος πίνακας Β που περιέχει Ν βαθμούς μαθητών. Να αναπτυχθεί αλγόριθμος, ο οποίος να υπολογίζει και να εμφανίζει το μέσο όρο βαθμολογίας των μαθητών.
  • 10. Βασικές αλγοριθμικές λειτουργίες σε δομές δεδομένων Για τη δημιουργία προγράμματος που να υλοποιεί τον παραπάνω αλγόριθμο και προκειμένου να γίνει ο έλεγχος ορθότητας, απαιτείται και η εισαγωγή κάποιων δεδομένων. Σύμφωνα με όσα αναφέρθηκαν στις προηγούμενες παραγράφους αυτό μπορεί να γίνει π.χ. με τον επόμενο αλγόριθμο.
  • 11. Βασικές αλγοριθμικές λειτουργίες σε δομές δεδομένων Παράδειγμα 2.27. Μέγιστο στοιχείο πίνακα Δίδεται ο μονοδιάστατος πίνακας Β που περιέχει Ν βαθμούς μαθητών. Να αναπτυχθεί αλγόριθμος, ο οποίος να βρίσκει και να εμφανίζει την υψηλότερη βαθμολογία.
  • 12. Βασικές αλγοριθμικές λειτουργίες σε δομές δεδομένων Δισδιάστατοι πίνακες Για την εισαγωγή δεδομένων σε ένα δισδιάστατο πίνακα Α που έχει Ν γραμμές και Μ στήλες, θα μπορούσε να αναπτυχθεί το ακόλουθο τμήμα αλγορίθμου: Για i από 1 μέχρι Ν Για j από 1 μέχρι Μ Διάβασε Α[i, j] Τέλος_επανάληψης Τέλος_επανάληψης
  • 13. Βασικές αλγοριθμικές λειτουργίες σε δομές δεδομένων Παράδειγμα 2.28. Επεξεργασία δισδιάστατου πίνακα Να αναπτυχθεί αλγόριθμος ο οποίος με δεδομένο το πλήθος των μαθητών της Γ’ γυμνασίου ενός σχολείου και τους βαθμούς των μαθητών στη γυμναστική, σε καθένα από τα 3 τρίμηνα, να υπολογίζει και να επιστρέφει το μέσο όρο βαθμολογίας κάθε μαθητή και το συνολικό μέσο όρο. Ο πίνακας Β έχει Ν γραμμές και 3 στήλες. Σε κάθε μία γραμμή υπάρχουν οι βαθμολογίες των τριών τριμήνων για κάθε ένα μαθητή.
  • 14. Βασικές αλγοριθμικές λειτουργίες σε δομές δεδομένων Παράδειγμα 2.29. Σειριακή αναζήτηση Σε ένα μονοδιάστατο πίνακα είναι καταχωρημένα τα ονόματα των σχολείων που συμμετέχουν σε έναν διαγωνισμό επιχειρηματικότητας και έχουν κατασκευάσει ένα χώρο παρουσίασης του επιχειρηματικού τους σχεδίου (που εν συντομία θα λέγεται περίπτερο). Ο αριθμός του περιπτέρου κάθε σχολείου είναι η θέση του σχολείου στον πίνακα. Δηλαδή στο πρώτο κελί του πίνακα είναι το όνομα του σχολείου που έχει το περίπτερο με αριθμό 1, στο δεύτερο κελί του πίνακα είναι το όνομα του σχολείου που έχει το περίπτερο με αριθμό 2 κ.ο.κ. Να αναπτυχθεί αλγόριθμος ο οποίος με δεδομένο το πλήθος των σχολείων που συμμετέχουν στο διαγωνισμό με περίπτερο και τον πίνακα με τα ονόματα των σχολείων, να διαβάζει το όνομα ενός σχολείου και να ψάχνει στον πίνακα, αν υπάρχει αυτό το σχολείο. Ο αλγόριθμος θα επιστρέφει το αποτέλεσμα της αναζήτησης, δηλαδή αν υπάρχει ή όχι το αναζητούμενο σχολείο, και αν υπάρχει τη θέση του στον πίνακα, αλλιώς ως θέση την τιμή μηδέν. Αλγόριθμος Αναζήτηση Δεδομένα // Α, Ν // Εμφάνισε ''Αναζητούμενο σχολείο:'' Διάβασε Κ i ← 1 Βρέθηκε ← Ψευδής Θέση ← 0 Όσο i ≤ Ν και Βρέθηκε = Ψευδής επανάλαβε Αν Κ = Α[i] τότε Θέση ← i Βρέθηκε ← Αληθής αλλιώς I ← i + 1 Tέλος_αν Τέλος_επανάληψης Αποτελέσματα // Βρέθηκε, Θέση // Τέλος Αναζήτηση Τα αποτελέσματα είναι η μεταβλητή Βρέθηκε, η οποία, αν είναι αληθής σημαίνει ότι η αναζήτηση ήταν επιτυχής και η μεταβλητή Θέση, που έχει τη θέση του στοιχείου στον πίνακα, εφ’ όσον βρέθηκε, αλλιώς θα έχουν την τιμή Ψευδής και μηδέν αντίστοιχα. Η τιμή μηδέν δεν μπορεί να είναι θέση πίνακα.
  • 15. Βασικές αλγοριθμικές λειτουργίες σε δομές δεδομένων Παράδειγμα 2.30. Ταξινόμηση με επιλογή Να αναπτυχθεί αλγόριθμος ο οποίος με δεδομένο το πλήθος των μαθητών της Γ’ γυμνασίου ενός σχολείου και τον τελικό βαθμό του κάθε μαθητή στο μάθημα «Πληροφορική», να ταξινομεί τον πίνακα των βαθμών σε αύξουσα τάξη, από το μικρότερο στο μεγαλύτερο βαθμό. Στη συνέχεια να επιστρέφει τον ταξινομημένο πίνακα. Η μέθοδος της ταξινόμησης με επιλογή βασίζεται στα ακόλουθα τρία βήματα: α. επιλογή του στοιχείου με την ελάχιστη τιμή. β. ανταλλαγή του με το πρώτο στοιχείο. γ. επανάληψη των (α), (β) με τα υπόλοιπα στοιχεία.