Πίνακας περιεχομένων:
Ορισμός - Τι σημαίνει Stack;
Μια στοίβα είναι μια εννοιολογική δομή που αποτελείται από ένα σύνολο ομοιογενών στοιχείων και βασίζεται στην αρχή του τελευταίου στο πρώτο out (LIFO). Είναι ένας συνήθης τύπος δεδομένων με δύο κύριες λειτουργίες, δηλαδή push και pop. Το push and pop πραγματοποιείται στο πιο πάνω στοιχείο, το οποίο είναι το στοιχείο που προστέθηκε πρόσφατα στη στοίβα. Η λειτουργία ώθησης προσθέτει ένα στοιχείο στη στοίβα, ενώ η λειτουργία pop καταργεί ένα στοιχείο από την κορυφή. Η ιδέα της στοίβας χρησιμοποιείται στον προγραμματισμό και την οργάνωση μνήμης σε υπολογιστές.
Η Techopedia εξηγεί το Stack
Μια στοίβα αντιπροσωπεύει μια ακολουθία αντικειμένων ή στοιχείων σε μορφή γραμμικής δομής δεδομένων. Η στοίβα αποτελείται από ένα οριογραμμένο πάτο και όλες οι λειτουργίες εκτελούνται στην πρώτη θέση. Κάθε φορά που ένα στοιχείο προστίθεται στη στοίβα από τη λειτουργία ώθησης, η κορυφαία τιμή αυξάνεται κατά ένα και όταν ένα στοιχείο εξέρχεται από τη στοίβα, η κορυφαία τιμή μειώνεται κατά μία. Ένας δείκτης στην κορυφή της στοίβας είναι επίσης γνωστός ως δείκτης στοίβας.
Μια στοίβα μπορεί να έχει καθορισμένο μέγεθος ή μπορεί να έχει δυναμική εφαρμογή όπου το μέγεθος επιτρέπεται να αλλάξει. Στην περίπτωση ορίων δεσμευμένης χωρητικότητας, η προσπάθεια προσθήκης στοιχείου σε μια ήδη πλήρη στοίβα προκαλεί μια εξαίρεση υπερπλήρωσης στοίβας. Ομοίως, μια κατάσταση όπου μια λειτουργία pop προσπαθεί να καταργήσει ένα στοιχείο από μια ήδη κενή στοίβα είναι γνωστή ως underflow.
Μια στοίβα θεωρείται ότι είναι μια περιορισμένη δομή δεδομένων δεδομένου ότι επιτρέπεται μόνο ένας περιορισμένος αριθμός λειτουργιών. Εκτός από τις λειτουργίες push και pop, ορισμένες εφαρμογές ενδέχεται να επιτρέπουν προηγμένες λειτουργίες όπως:
- Peek - Δείτε το πιο πάνω στοιχείο στη στοίβα.
- Διπλότυπο - Αντιγράψτε την τιμή του στοιχείου κορυφής σε μια μεταβλητή και σπρώξτε την ξανά στη στοίβα.
- Ανταλλαγή - Αντικατάσταση των δύο κορυφαίων αντικειμένων στη στοίβα.
- Περιστροφή - Μετακινήστε τα κορυφαία στοιχεία στη στοίβα όπως καθορίζεται από έναν αριθμό ή μετακινήστε με περιστροφικό τρόπο.
Οι υλοποιήσεις λογισμικού της ιδέας της στοίβας γίνονται με συστοιχίες και συνδεδεμένες λίστες όπου η κορυφαία θέση παρακολουθείται χρησιμοποιώντας έναν δείκτη μεταβλητού ή κεφαλίδας αντίστοιχα. Πολλές γλώσσες προγραμματισμού παρέχουν ενσωματωμένες λειτουργίες για την υποστήριξη της υλοποίησης της στοίβας.
Οι στοίβες υλικού υλοποιούνται με σκοπό την κατανομή μνήμης και την πρόσβαση χρησιμοποιώντας σταθερή προέλευση και μέγεθος. Οι καταχωρητές στοίβας χρησιμοποιούνται για την αποθήκευση της τιμής του δείκτη στοίβας.
