Você está na página 1de 12

Estrutura de Dados

PILHAS

Prof. Gustavo Rissetti gustavo.rissetti@iffarroupilha.edu.br 1


Pilhas
• É uma das estruturas de dados mais simples.
• A ideia fundamental da pilha é que todo o acesso a seus
elementos é feito através do seu topo.
◦ Assim, quando um elemento novo é introduzido na pilha, passa a
ser o elemento do topo, e o único elemento que pode ser
removido da pilha é o do topo.

Prof. Gustavo Rissetti gustavo.rissetti@iffarroupilha.edu.br 2


Pilhas
• É uma estrutura de dados baseada no princípio LIFO (Last
In, First Out), na qual os dados que foram inseridos
primeiros na pilha serão os últimos a serem removidos.

Prof. Gustavo Rissetti gustavo.rissetti@iffarroupilha.edu.br 3


Pilhas
• Exemplos de aplicações reais:
◦ O exemplo mais prático que costuma utilizar-se para entender o
processo de pilha é como uma pilha de livros ou pilha de pratos,
no qual ao se colocar diversos elementos uns sobre os outros, se
quisermos pegar o livro mais abaixo deveremos tirar todos os
livros que estiverem sobre ele.
• Exemplos na área:
◦ Os navegadores Web que armazenam os endereços das páginas
mais recentemente visitadas numa pilha.
◦ Os editores de texto que disponibilizam mecanismo de "desfazer"
(undo), normalmente mantêm armazenadas numa pilha as
mudanças de textos ocorridas.

Prof. Gustavo Rissetti gustavo.rissetti@iffarroupilha.edu.br 4


Pilhas
• Para a estrutura de dados do tipo Pilha, usamos a mesma
classe Elemento usada na Lista Encadeada, onde um
Elemento armazena uma referência para o próximo
elemento.

Prof. Gustavo Rissetti gustavo.rissetti@iffarroupilha.edu.br 5


Classe Pilha

◦ Uma pilha geralmente suporta as seguintes operações básicas:


◦ Empilhar (push): insere um novo elemento no topo da lista;
◦ Desempilhar (pop): remove o elemento do topo da lista.
◦ Topo (top): acessa-se o elemento posicionado no topo da pilha;
◦ Vazia (isEmpty): indica se a pilha está vazia.
◦ Tamanho (size): retorna a quantidade de elementos da pilha.

Prof. Gustavo Rissetti gustavo.rissetti@iffarroupilha.edu.br 6


Método para Empilhar

Prof. Gustavo Rissetti gustavo.rissetti@iffarroupilha.edu.br 7


Método para Desempilhar

Prof. Gustavo Rissetti gustavo.rissetti@iffarroupilha.edu.br 8


Exemplo de Uso de Pilhas

Prof. Gustavo Rissetti gustavo.rissetti@iffarroupilha.edu.br 9


Exemplo de Uso de Pilhas

Prof. Gustavo Rissetti gustavo.rissetti@iffarroupilha.edu.br 10


Exercícios
1) Altere a classe Pilha para ela conter o método vazia(),
que indica se a pilha está vazia (retorna um booleano).
2) Modifique a classe Pilha para que ela tenha um método
tamanho(), que retorna a quantidade de elementos da
pilha.
3) Adicione um método listar() na classe Pilha para que
sejam listados os elementos da mesma.
4) Descreva a saída da seguinte sequência de operações
sobre uma pilha de inteiros: push(5), push(3), pop(),
push(2), push(8), pop(), pop(), push(9), push(1), pop(),
push(7), push(6), pop(), pop(), push(4), pop(), pop().

Prof. Gustavo Rissetti gustavo.rissetti@iffarroupilha.edu.br 11


Exercícios
5) Escreva um programa para ler uma frase digitada via
teclado, armazene cada letra em uma pilha, e como saída,
exiba na tela a frase invertida.
6) Escreva um programa que use pilha para verificar se uma
dada cadeia de caracteres é ou não palíndroma. Por
exemplo: “subi no onibus” ou “amor a roma” é palíndroma.

Prof. Gustavo Rissetti gustavo.rissetti@iffarroupilha.edu.br 12

Você também pode gostar