Pilhas – Python

Pilha

Definição de Pilha: Estrutura para armazenar um conjunto de dados, que funciona da seguinte forma:

  1. Novos elementos sempre entram no “topo” da pilha;
  2. O único elemento que pode ser retirado da pilha é o elemento do topo.

Comandos call:

  1. Empilhar (push);
  2. Desempilhar (pop).

Exemplo: Implemente um programa que realize a conversão de um número decimal para binário usando pilha.

Primeiramente você deverá criar a classe Pilha:

class Pilha():
 # definir a função init para inicialização de uma lista
 def __init__(self):
     self.data = []
 # definir a função push para adicionar elementos
 def push(self, x):
     self.data.append(x)
 # definir a função pop para remover o último elemento da lista
 def pop(self):
     if len(self.data) > 0:
         return self.data.pop(-1)
 # consultar o elemento do topo da lista
 def top(self):
     if len(self.data) > 0:
         return self.data[-1]
 # verificar se a pilha está vazia
 def empty(self):
     return not len(self.data) > 0

Depois de criar a classe Pilha, então deverá criar um Objeto “p” e nele empilhar os restos da divisão sucessiva do número decimal (Exemplo 25) por 2.

p = Pilha()
num = 25  # Número na base 10 que será convertido para binário

 # Efetuar divisões sucessivas por 2 e empilhar os restos
while num > 0:
     resto = num % 2
     num = num // 2
     p.push(resto)

 # Enquanto a lista não for vázia mostar algarismos)
while not p.empty():
     print (p.pop())

O resultado esperado será o número binário 11001.

 1
 1
 0
 0
 1 

Download: http://valci.com.br/download/notebook/Pilha-Converter_numero_decimal_em_binario.ipynb