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