Μάθημα : Προγραμματισμός Υπολογιστών Γ' ετος 2025-2026
Κωδικός : 4540050176
-
Εμφάνιση όλων των ενοτήτων
-
3.2 Αριθμητικές και λογικές πράξεις, εκφράσεις και μεταβλητές (Ασκήσεις με έκπτωση και ΦΠΑ )
-
3.3 Βασικές Ενσωματωμένες συναρτήσεις
-
4.1.2 Δομή επιλογής if
-
4.1.3 Δομή επανάληψης (For-While)
-
4.1.4 For ή While
-
4.2 Συναρτήσεις
-
8.1 Συμβολοσειρές (strings)
-
Λίστες
-
5.1 Δυαδική αναζητηση 5.2 Ταξινόμηση ανταλλαγής (bubble sort)
-
8.3 Στοίβα
-
8.4 Ουρά
-
7.3 Αρθρωματα (Modules)
-
7.3.2 Σύντομη περιγραφή της Πρότυπης βιβλιοθήκης (Standard Library)
-
7.3.3 Πακέτα (Packages)
-
6.Αρχεία
-
11.Αντικειμενοστραφής Προγραμματισμός
-
3.2 Αριθμητικές και λογικές πράξεις, εκφράσεις και μεταβλητές (Ασκήσεις με έκπτωση και ΦΠΑ )
8.3 Στοίβα
Στοίβα (stack)
Last In First Out - LIFO
Όταν η στοίβα είναι άδεια, είναι προφανές ότι δεν μπορείνα γίνει απώθηση. Άρα, όταν απωθούμε ένα στοιχείο απότη στοίβα, θα πρέπει προηγουμένως να έχουμε εξασφαλίσει ότι η στοίβα δεν είναι κενή. Για αυτό το λόγο, εκτός από την ώθηση και την απώθηση, πρέπει να υλοποιήσουμε και τον έλεγχο, αν η στοίβα είναι κενή.
Οι βασικές λειτουργίες που πρέπει να υποστηρίζει η υλοποίηση μιας στοίβας είναι:
● Δημιουργία μιας κενής στοίβας.
● Έλεγχος, αν η στοίβα είναι κενή.
● Ώθηση ενός στοιχείου στη στοίβα.
● Απώθηση ενός στοιχείου από τη στοίβα.
def push(stack, item) :
stack.append( item )
def pop(stack) :
return stack.pop( )
def isEmpty(stack) :
return len(stack) == 0
def createStack( ) :
return []
Το παρακάτω πρόγραμμα δέχεται από το χρήστη αριθμούς μέχρι να δοθεί το 0 και τους εμφανίζει σε αντίστροφη σειρά από αυτή με την οποία δόθηκαν.
Θέλουμε κάθε φορά να εμφανίσουμε πρώτο τον αριθμό που δόθηκε τελευταίος. Χρειαζόμαστε μια δομή δεδομένων που να υποστηρίζει τη λειτουργία LIFO, όπως η στοίβα (χρησιμοποιούμε βοηθητικά print)
def push(stack,i):
stack.insert(0,i)
def pop(stack):
return stack.pop(0)
def isempty(stack):
return len(stack)==0
def createstack():
return []
s=createstack()
number=int(raw_input('dose aritmo '))
while number!=0:
push(s,number)
print s
number=int(raw_input('dose aritmo '))
print s
while not isempty(s):
number=pop(s)
print number
print s