Λογότυπο ήδη-έτερον
Βασική Θεωρία

📚 Στοίβα (Stack)

🔄 Τι είναι η Στοίβα;

Η στοίβα είναι μια δομή δεδομένων όπου τα στοιχεία τοποθετούνται και αφαιρούνται με τρόπο Τελευταίο Μέσα, Πρώτο Έξω (LIFO - Last In First Out). Αυτό σημαίνει ότι το τελευταίο στοιχείο που προστέθηκε στη στοίβα είναι το πρώτο που θα αφαιρεθεί.

🔧 Βασικές Λειτουργίες Στοίβας

Οι κύριες λειτουργίες που υποστηρίζει μια στοίβα είναι:

  1. Ώθηση (push): Προσθήκη στοιχείου στην κορυφή της στοίβας.

    • Ελέγχουμε αν η στοίβα είναι γεμάτη πριν την προσθήκη. Σε περίπτωση που είναι, προκαλείται υπερχείλιση (overflow).
  2. Απώθηση (pop): Αφαίρεση στοιχείου από την κορυφή της στοίβας.

    • Ελέγχουμε αν υπάρχει τουλάχιστον ένα στοιχείο πριν αφαιρέσουμε. Αν η στοίβα είναι άδεια, έχουμε υποχείλιση (underflow).

🧩 Υλοποίηση Στοίβας με Μονοδιάστατο Πίνακα

  • Χρησιμοποιούμε μια βοηθητική μεταβλητή top, που δείχνει το τελευταίο στοιχείο στην κορυφή της στοίβας.

  • Ώθηση:

    • Προσθέτουμε το νέο στοιχείο στην κορυφή του πίνακα και αυξάνουμε την τιμή της μεταβλητής top κατά 1.
    top <- top + 1
    
  • Απώθηση:

    • Αφαιρούμε το στοιχείο από την κορυφή του πίνακα και μειώνουμε την τιμή της μεταβλητής top κατά 1.
    top <- top - 1
    

👨‍💻 Παραδείγματα Προγραμμάτων

Παράδειγμα 1: Ώθηση Στοιχείου στην Κορυφή της Στοίβας

  • Σκοπός: Να αναπτυχθεί τμήμα προγράμματος σε ΓΛΩΣΣΑ που προσθέτει ένα στοιχείο στη στοίβα με 10 θέσεις.

    ΓΡΑΨΕ 'Δώσε στοιχείο για να εισαχθεί στη στοίβα Α:'
    ΔΙΑΒΑΣΕ στοιχείο
    ΑΝ top < 10 ΤΟΤΕ
      top <- top + 1
      A[top] <- στοιχείο
    ΑΛΛΙΩΣ
      ΓΡΑΨΕ 'Υπερχείλιση στοίβας'
    ΤΕΛΟΣ_ΑΝ
    

Παράδειγμα 2: Απώθηση Στοιχείου από τη Στοίβα

  • Σκοπός: Να αναπτυχθεί τμήμα προγράμματος σε ΓΛΩΣΣΑ που αφαιρεί ένα στοιχείο από τη στοίβα με 10 θέσεις.

    ΑΝ top >= 1 ΤΟΤΕ
      ΓΡΑΨΕ Α[top]
      top <- top - 1
    ΑΛΛΙΩΣ
      ΓΡΑΨΕ 'Υποχείλιση στοίβας'
    ΤΕΛΟΣ_ΑΝ
    

📝 Συνοψίζοντας

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

Ο Ευκλείδης λειτουργεί μέσω τεχνητής νοημσύνης