MINICURSO DE 
ESTRUTURA DE DADOS 
Aula 02 – Pilhas e seus 
algoritmos
CONTEÚDO DA AULA 
Conceitos •Pilhas 
•Stack-empty 
•Push 
•Pop 
Algoritmos 
Exercícios •Operações com pilhas
CONCEITOS 
Pilhas 
•Como passado na aula anterior pilha é 
uma variação de deque. 
• A pilha implementa a seguinte norma: 
O último a entrar é o primeiro a sair, 
ou LIFO (last in first out).
CARACTERÍSTICAS DAS PILHAS 
Formas de 
armazenamento 
• Em vetores 
• Ponteiros ( um ponteiro indica o topo da pilha ) 
Operações 
básicas 
• Verificar se lista está vazia – STACK-EMPTY(S) 
• Retornar o índice do topo – TOPO(S) 
• Inserir um elemento(empilhar) – PUSH(S,x) 
• Remover um elemento(desempilhar) – POP(S) 
Operações 
inválidas 
• Inserção em pilha cheia – OVERFLOW 
• Remoção em pilha vazia – UNDERFLOW
EXEMPLO DE OPERAÇÃO EM 
PILHAS 
Índice da 
pilha S 
5 
4 
3 
2 
1 
Inicial: 
pilha vazia 
- 
- 
- 
- 
- 
PUSH(S,a) 
- 
- 
- 
- 
A 
PUSH(S,b) 
- 
- 
- 
B 
A 
POP(S) 
- 
- 
- 
- 
A 
PUSH(S,c) 
- 
- 
- 
C 
A 
POP(S) 
- 
- 
- 
- 
A 
POP(S) 
- 
- 
- 
- 
- 
POP(S) 
- 
- 
- 
- 
- 
A figura acima ilustra algumas operações na pilha S, utilizando os algoritmos de 
empilhamento(PUSH) e desempilhamento (POP). 
Observe que na última operação ocorre uma erro de UNDERFLOW, onde a pilha já se 
encontra vazia e mesmo assim é dado o comando de desempilhar.
O ALGORITMO STACK-EMPTY(S) 
• O algoritmo STACK-EMPTY(S) serve para consultar se a 
lista está vazia visando evitar problemas de UNDERFLOW. Conceito 
• STACK-EMPTY(S) 
• If topo[S] = 0 
• then return TRUE 
• else return FALSE 
Código
O ALGORITMO PUSH(S,X) 
• O algoritmo PUSH(S, x) realiza o 
procedimento de empilhamento, ou seja, 
insere um elemento na estrutura. 
Conceito 
• PUSH(S,x) 
• topo[S]  topo[S + 1] 
• S[topo[S]]  x 
Código
O ALGORITMO POP(S) 
•O algoritmo POP(S) realiza o procedimento de desempilhamento, ou 
seja, remove um elemento na estrutura. Conceito 
•POP(S) 
• if STACK-EMPTY(S) 
• then error “underflow” 
• else topo[S]  topo[S - 1] 
• return S[topo[S] + 1 
Código
EXERCÍCIO 
Utilizando o modelo de pilha do exemplo passado, ilustre o resultado 
de cada operação na sequência PUSH(S,4), PUSH(S,1), PUSH(S,3), 
POP(S), PUSH(S,8), POP(S) sobre uma pilha S inicialmente vazia 
armazenada num arranjo[1 .. 5].
DUVIDAS? Aula 02 – Pilhas

Aula02 Pilhas

  • 1.
    MINICURSO DE ESTRUTURADE DADOS Aula 02 – Pilhas e seus algoritmos
  • 2.
    CONTEÚDO DA AULA Conceitos •Pilhas •Stack-empty •Push •Pop Algoritmos Exercícios •Operações com pilhas
  • 3.
    CONCEITOS Pilhas •Comopassado na aula anterior pilha é uma variação de deque. • A pilha implementa a seguinte norma: O último a entrar é o primeiro a sair, ou LIFO (last in first out).
  • 4.
    CARACTERÍSTICAS DAS PILHAS Formas de armazenamento • Em vetores • Ponteiros ( um ponteiro indica o topo da pilha ) Operações básicas • Verificar se lista está vazia – STACK-EMPTY(S) • Retornar o índice do topo – TOPO(S) • Inserir um elemento(empilhar) – PUSH(S,x) • Remover um elemento(desempilhar) – POP(S) Operações inválidas • Inserção em pilha cheia – OVERFLOW • Remoção em pilha vazia – UNDERFLOW
  • 5.
    EXEMPLO DE OPERAÇÃOEM PILHAS Índice da pilha S 5 4 3 2 1 Inicial: pilha vazia - - - - - PUSH(S,a) - - - - A PUSH(S,b) - - - B A POP(S) - - - - A PUSH(S,c) - - - C A POP(S) - - - - A POP(S) - - - - - POP(S) - - - - - A figura acima ilustra algumas operações na pilha S, utilizando os algoritmos de empilhamento(PUSH) e desempilhamento (POP). Observe que na última operação ocorre uma erro de UNDERFLOW, onde a pilha já se encontra vazia e mesmo assim é dado o comando de desempilhar.
  • 6.
    O ALGORITMO STACK-EMPTY(S) • O algoritmo STACK-EMPTY(S) serve para consultar se a lista está vazia visando evitar problemas de UNDERFLOW. Conceito • STACK-EMPTY(S) • If topo[S] = 0 • then return TRUE • else return FALSE Código
  • 7.
    O ALGORITMO PUSH(S,X) • O algoritmo PUSH(S, x) realiza o procedimento de empilhamento, ou seja, insere um elemento na estrutura. Conceito • PUSH(S,x) • topo[S]  topo[S + 1] • S[topo[S]]  x Código
  • 8.
    O ALGORITMO POP(S) •O algoritmo POP(S) realiza o procedimento de desempilhamento, ou seja, remove um elemento na estrutura. Conceito •POP(S) • if STACK-EMPTY(S) • then error “underflow” • else topo[S]  topo[S - 1] • return S[topo[S] + 1 Código
  • 9.
    EXERCÍCIO Utilizando omodelo de pilha do exemplo passado, ilustre o resultado de cada operação na sequência PUSH(S,4), PUSH(S,1), PUSH(S,3), POP(S), PUSH(S,8), POP(S) sobre uma pilha S inicialmente vazia armazenada num arranjo[1 .. 5].
  • 10.
    DUVIDAS? Aula 02– Pilhas