Na nossa sexta aula de métodos computacionais discutimos duas coleções importantes de dados: pilhas e filas. Esses são os slides usados em sala.
Abaixo temos os exemplos apresentados em sala de aula:
Como implementar uma pilha em python?
Como implementar uma fila em python?
Como python aloca memória dinamicamente para uma lista?
Referências Adicionais para essa aula:
Introduction to Algorithms - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest e Clifford Stein [Seções 10.1, 17.2 and 17.4]
Data Structures and Algorithms in Python - Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser [Seções 5.3, 6.1, 6.2]
Fundamentals of Python: Data Structures - Kenneth Lambert [Capítulos 7 e 8]
Data Structures and Algorithms Using Python - Rance D. Necaise [Capítulos 7 e 8]
Solução da série de exercícios
Exercício 1:
Você pode dar um exemplo de um algoritmo que verifica se um número é um palíndromo usando pilha?
Exercício 3:
Chamadas recursivas da torre de Hanoii
Exercício 5 (a):
Pilha com três números distintos
Exercício 5 (b):
Pilha com capacidade limitada.
Exercício 5 (c):
Inversão de elementos usando pilhas
Exercício 5 (e):
Como usar uma pilha para gerar todas as permutações de um conjunto?
Exercício 5 (f):
Algoritmo não recursivo para gerar todos os subconjuntos de um dado conjunto
Exercício 5 (h):
Manipulação de elementos usando pilhas.
Exercício 5 (l):
Encontrando elemento em uma pilha
Exercício 5 (p):
Travessia de vacas.