Stos w Pythonie

0

Cześć!

Mam na zajęciach w technikum zaprogramować stos w pythonie i zawrzeć elementy dodawania i usuwania ze stosu. Póki co wpadłem na coś takiego:

import random
random.seed()

print('Podaj ilu znakowy ma byc stos')
wielkosc=int(input())
print(' ')
operacja=0
class stos:

    def __init__ (self):        # quasi konstruktor 
        self.stos = []          # Self wywoluje metode z klasy nadrzednej

    def Empty(self):        # Sprawdza czy stos jest pusty
#                self.operacja=operacja+1
        if len(self.stos) == 0 : return True
    #   print('Stos jest pusty')
        else : return False
    def Push(self, a):      # Dodawanie elementow
        self.stos.append(a)
        #print('Element zostal dodany do stosu')
#       self.operacja=operacja+1

    def Pop(self):          # Usuwanie elementu
        self.stos.pop(len(self.stos)-1)  #zdejmowanie ostatniego elementu ze stosu i odejmowanie 1
        #print('Element zostal usuniety ze stosu')
#       self.operacja=operacja+1

    def Size(self):         
        return len(self.stos)
#                operacja=operacja+1

    def Top(self):          # Zwraca ostatni element
        return self.stos[ len(self.stos)-1 ]
#                operacja=operacja+1

#    def Empty(self): # Sprawdza czy stos jest pusty
#                 if len(self.stos) == 0 : return True
#                 else : return False

# Przykladowe dzialania

stos2 = stos()

for i in range(0, wielkosc) : stos2.Push(i)

l = stos2.Size()

print 'Ilosc elementow stosie :', wielkosc

print 'Obiekty na stosie :',

for i in range(l) :
    print stos2.Top(),
    stos2.Pop()

print 'Dodaj element do stosu. Podaj dowolna liczbe z podanego wczesniej zakresu'
liczba1=int(input())
stos.append(liczba1)

        def Push(self, liczba1):        # Dodawanie elementow
        self.stos.append(liczba1)

        def Pop(self):          # Usuwanie elementu
    self.stos.pop(len(self.stos)-1) 

#print 'Liczba wykonanych operacji', operacja

Niestety to zupełnie nie działa. W pierwszej części kodu ustawiam całą klasę stos. W drugiej chce się do niej odwołać, dodając z klawiatury nowe elementy. Docelowo najlepiej by było gdyby program losował np. 30 wartości, potem je dodawał prezentując na ekranie każdy krok. Pomożecie coś młodemu programiście?

0

Prosty stos możesz zrobić na liście korzystając z pop i append.

1
class Stack(list):

    def empty(self):
        return not self

    def size(self):
        return len(self)

    def push(self, *args, **kwargs):
       super(Stack, self).append(*args, **kwargs)

stack = Stack()

print stack.empty()

stack.push(1)
stack.push(5)
stack.push(15)

print stack.empty()

print stack.size()
print stack.pop()
print stack.pop()
print stack.pop()
print stack.empty()
print stack.size()

#: python stack.py
True
False
3
15
5
1
True
0

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0