menuuuu

Δομές Δεδομένων


Τα δεδομένα αποθηκεύονται στον υπολογιστή, είτε στην κύρια μνήμη του είτε στη δευτερεύουσα μνήμη του. Η αποθήκευση αυτή δεν γίνεται κατά ένα τυχαίο τρόπο αλλά συστηματικά, δηλαδή χρησιμοποιώντας μία δομή. 

Μία θέση μνήμης (byte) έχει ως περιεχόμενο έναν οκταψήφιο αριθμό από 0 και 1 (π.χ. 11101001). Όσον αφορά στη φυσική σημασία της αν μεν είναι χαρακτήρας, τότε αποτελεί μέρος μιας αλφαριθμητικής σταθεράς, ενώ αν πρόκειται για αριθμητική τιμή, τότε μπορεί να είναι δεδομένο, διεύθυνση μνήμης ή κώδικας εντολής προγράμματος.

    Δομή Δεδομένων είναι ένα σύνολο αποθηκευμένων δεδομένων που υφίσταται επεξεργασία από ένα σύνολο λειτουργιών

Κάθε μορφή δεδομένων αποτελείται από ένα σύνολο κόμβων. Τα δεδομένα ενός κόμβου μπορούν να αντιστοιχούν σε μια ή περισσότερες μεταβλητές. (Π.Χ μια εγγραφή που αποτελείται από το Επώνυμο, το Όνομα και το Τηλέφωνο). Μια υποδιαίρεση του κόμβου λέγεται πεδίο.

Βασικες λειτουργιες (πραξεις) επι των δομων δεδομενων

Προσπέλαση (Access)
Πρόσβαση σε ένα κόμβο με σκοπό να εμφανισθεί ή να μεταβληθεί το περιεχόμενο του
Εισαγωγή (Insertion)
Δημιουργία νέων κόμβων σε μια υπάρχουσα δομή
Διαγραφή (Deletion)
Αφαίρεση κόμβων από υπάρχουσα δομή. Είναι το αντίστροφο από την εισαγωγή
Αναζήτηση (Searching)
Προσπέλαση των κόμβων προκειμένου να εντοπιστούν ένας ή περισσότεροι που έχουν μια δεδομένη ιδιότητα
Ταξινόμηση (Sorting)
Διάταξη των κόμβων κατά αύξουσα ή φθίνουσα σειρά
Αντιγραφή (Copying)
Αντιγραφή όλων ή μερικών κόμβων σε μια άλλη δομή
Συγχώνευση (Merging)
Συγχώνευση δύο ή περισσοτέρων κόμβων σε μια ενιαία δομή
Διαχωρισμός (Separation)
Τεμαχισμός μιας ενιαίας δομής σε περισσότερες. Είναι το αντίστροφο της συγχώνευσης

    Στην πράξη σπάνια χρησιμοποιούνται και οι οκτώ λειτουργίες για κάποια δομή. Συνηθέστατα παρατηρείται το φαινόμενο μία δομή δεδομένων να είναι αποδοτικότερη από μία άλλη δομή με κριτήριο κάποια λειτουργία, για παράδειγμα την αναζήτηση, αλλά λιγότερο αποδοτική για κάποια άλλη λειτουργία, για παράδειγμα την εισαγωγή. Αυτές οι παρατηρήσεις εξηγούν αφ’ ενός την ύπαρξη διαφορετικών δομών, και αφ’ ετέρου τη σπουδαιότητα της επιλογής της κατάλληλης δομής κάθε φορά. Η εξάρτηση μεταξύ της δομής δεδομένων και του αλγόριθμου που επεξεργάζεται τη δομή είναι μεγάλη. Το πρόγραμμα πρέπει να θεωρεί τη δομή δεδομένων και τον αλγόριθμο ως μια αδιάσπαστη ενότητα.

    Αλγόριθμοι + Δομές Δεδομένων = Προγράμματα


    Κατηγοριες Δομων Δεδομενων

    Στατικές Δυναμικές
    Τα στοιχεία τους αποθηκεύονται σε συνεχόμενες θέσεις μνήμης 
    Δεν απαιτούνται συνεχόμενες θέσεις μνήμης για την αποθήκευση των στοιχείων τους αλλά στηρίζονται στην τεχνική της λεγόμενης δυναμικής παραχώρησης μνήμης 
    Το μέγεθος τους είναι σταθερό. Το ακριβές μέγεθος της απαιτούμενης κύριας μνήμης για την δομή δεδομένων καθορίζεται κατά την στιγμή του προγραμματισμού τους και κατά συνέπεια κατά τη στιγμή της μετάφρασής τους και όχι κατά τη στιγμή της εκτέλεσης τους προγράμματος. (Π.χ. Πίνακες και υποστηρίζονται από κάθε γλώσσα προγραμματισμού)
    Οι δομές αυτές δεν έχουν σταθερό μέγεθος αλλά ο αριθμός των κόμβων τους αυξάνεται όταν εισάγονται δεδομένα και μειώνεται όταν διαγράφονται δεδομένα (Όλες οι σύγχρονες γλώσσες προγραμματισμού προσφέρουν τη δυνατότητα δυναμικής παραχώρησης μνήμης)

    Δεν υπάρχουν σχόλια:

    Δημοσίευση σχολίου