Search for:


Η στοίβα είναι μια δομή δεδομένων LIFO (Last In First Out). Τούτο σημαίνει ότι τα δεδομένα που εισάγουμε τελευταία τα εξάγουμε πρώτα. Το καλύτερο παράδειγμα μιάς στοίβας είναι μια στοίβα από βιβλία όπου παίρνουμε αυτό που βάλαμε τελευταίο ή μια στοίβα από πιάτα όπου τα στοιβάζουμε όταν τα πλένουμε κι όταν θέλομε να τα νεροπεράσουμε τότε ξεκινάμε από το πιάτο που πλύναμε τελευταίο και πηγαίνουμε σιγά – σιγά στο πιάτο που πλύναμε πρώτο.

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

#stack
def createStack():
    return []

def addItem(mstack,mitem):
    retStack=mstack[:]
    retStack.append(mitem)
    return retStack

def delItem(mstack):
    retStack=mstack[:]
    print(retStack.pop())
    return retStack

def printStack(mstack):
    print(mstack)

Στην προηγούμενη υλοποίηση τής στοίβας μπορούμε να διακρίνουμε την συνάρτηση ‘createStack()’ η οποία δεν δέχεται ορίσματα κι επιστρέφει μια κενή λίστα. Η συνάρτηση ‘addItem(mstack,mitem)’ δέχεται σαν ορίσματα μια στοίβα ‘mstack’ κι ένα στοιχείο ‘mitem’ το οποίο προσθέτει στο τέλος τής στοίβας κι επιστρέφει την νέα στοίβα. Η συνάρτηση ‘delItem(mstack)’ δέχεται σαν όρισμα μια στοίβα, αφαιρεί το τελευταίο στοιχείο της, το εμφανίζει στην οθόνη τού υπολογιστή κι επιστρέφει την νέα στοίβα από την οποία λείπει το στοιχέιο που αφαιρέθηκε. Τέλος, έχουμε και την συνάρτηση ‘printStack(mstack)’ η οποία εμφανίζει την στοίβα την οποία δίνουμε σαν όρισμα. ΠΑρακάτω μπορείτε να κατευάσετε τον κώδικα και να τον διορθώσετε:

Παρακάτω βλέπουμε την κλήση τών συναρτήσεων στο περιβάλλον τής γλώσσας Python.

>>> ms=createStack()
>>> ms
[]
>>> ms=addItem(ms,99)
>>> ms
[99]
>>> ms=addItem(ms,100)
>>> ms
[99, 100]
>>> ms=delItem(ms)
100
>>> ms
[99]
>>> printStack(ms)
[99]
>>>