Primeira vez aqui? Seja bem vindo e cheque o FAQ!
x

Como implementar uma pilha em Python?

0 votos
1,426 visitas
perguntada Abr 4, 2016 em Ciência da Computação por danielcajueiro (5,806 pontos)  
recategorizado Abr 4, 2016 por danielcajueiro
Compartilhe

1 Resposta

0 votos
respondida Abr 4, 2016 por danielcajueiro (5,806 pontos)  

Você pode usar uma lista em Python como se fosse uma pilha, que ela é eficiente.

Entretanto, se você quiser uma classe, veja o exemplo abaixo que adapta simplesmente os métodos de listas:

class Stack:
    def __init__(self):
        self.__stack=[]

    def __len__(self):
        return len(self.__stack)

    def is_empty(self):
        return len(self.__stack)==0

    def push(self,element):
        self.__stack.append(element)

    def pop(self):
        if(self.is_empty()):
            raise(Empty('Stack is empty')) 
        else:
            return self.__stack.pop()

    def top(self):
        if(self.is_empty()):
            raise(Empty('Stack is empty'))
        else:
            return self.__stack[-1]        

if __name__ == '__main__':
    myStack=Stack()

    if(myStack.is_empty()):
        print ("Stack is empty")

    myStack.push(5)
    myStack.push(6)
    myStack.push(7)    

    print (myStack.pop())

    print ("What is the first element now?")
    print (myStack.top())

    print ("What is the length now?")
    print (len(myStack))
...