SlideShare uma empresa Scribd logo
1 de 10
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

Mais conteúdo relacionado

Mais procurados

Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
Adriano Teixeira de Souza
 
Introdução à linguagem c
Introdução à linguagem cIntrodução à linguagem c
Introdução à linguagem c
Rafael_Lima87
 

Mais procurados (20)

Pilha e Fila Dinamica
Pilha e Fila DinamicaPilha e Fila Dinamica
Pilha e Fila Dinamica
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - PilhasEstrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
 
Aula14
Aula14Aula14
Aula14
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
 
Estrutura de dados - Filas
Estrutura de dados - FilasEstrutura de dados - Filas
Estrutura de dados - Filas
 
Java 8 - New Features
Java 8 - New FeaturesJava 8 - New Features
Java 8 - New Features
 
Estrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas EncadeadasEstrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas Encadeadas
 
Programação funcional
Programação funcionalProgramação funcional
Programação funcional
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - FilasEstrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Programação funcional com abap
Programação funcional com abapProgramação funcional com abap
Programação funcional com abap
 
Programação funcional no dia a dia
Programação funcional no dia a diaProgramação funcional no dia a dia
Programação funcional no dia a dia
 
Estrutura de Dados - PILHAS
Estrutura de Dados - PILHASEstrutura de Dados - PILHAS
Estrutura de Dados - PILHAS
 
Filas encadeadas
Filas encadeadasFilas encadeadas
Filas encadeadas
 
Pilhas encadeadas
Pilhas encadeadasPilhas encadeadas
Pilhas encadeadas
 
Pilhas e filas
Pilhas e filasPilhas e filas
Pilhas e filas
 
Pilha
PilhaPilha
Pilha
 
Introdução à linguagem c
Introdução à linguagem cIntrodução à linguagem c
Introdução à linguagem c
 
Apostila rpira
Apostila rpiraApostila rpira
Apostila rpira
 
Programação funcional
Programação funcionalProgramação funcional
Programação funcional
 
Lp m2(parte4)
Lp m2(parte4)Lp m2(parte4)
Lp m2(parte4)
 

Destaque

Destaque (10)

Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Pged 06
Pged 06Pged 06
Pged 06
 
Ed1
Ed1Ed1
Ed1
 
Aula01 - estrutura de dados
Aula01 - estrutura de dadosAula01 - estrutura de dados
Aula01 - estrutura de dados
 
[Curso Java Basico] Exercicios Aulas 25 a 27
[Curso Java Basico] Exercicios Aulas 25 a 27[Curso Java Basico] Exercicios Aulas 25 a 27
[Curso Java Basico] Exercicios Aulas 25 a 27
 
Estrutura de Dados Aula 05 - Filas Estáticas
Estrutura de Dados  Aula 05 - Filas EstáticasEstrutura de Dados  Aula 05 - Filas Estáticas
Estrutura de Dados Aula 05 - Filas Estáticas
 
Teoria das Filas
Teoria das FilasTeoria das Filas
Teoria das Filas
 
Estrutura de Dados Aula 07 - Alocação dinâmica de memória
Estrutura de Dados Aula 07 - Alocação dinâmica de memóriaEstrutura de Dados Aula 07 - Alocação dinâmica de memória
Estrutura de Dados Aula 07 - Alocação dinâmica de memória
 
Estruturas de dados
Estruturas de dadosEstruturas de dados
Estruturas de dados
 
Microensino de estrutura de dados
Microensino de estrutura de dadosMicroensino de estrutura de dados
Microensino de estrutura de dados
 

Semelhante a Aula02 Pilhas (7)

6 alocacao sequencial - pilhas
6   alocacao sequencial - pilhas6   alocacao sequencial - pilhas
6 alocacao sequencial - pilhas
 
Aula 8
Aula 8Aula 8
Aula 8
 
Estrutura de Dados - Aula 08
Estrutura de Dados - Aula 08Estrutura de Dados - Aula 08
Estrutura de Dados - Aula 08
 
Pged 05
Pged 05Pged 05
Pged 05
 
Slides pilhas e_filas
Slides  pilhas e_filasSlides  pilhas e_filas
Slides pilhas e_filas
 
Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)
Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)
Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)
 
Skip List
Skip ListSkip List
Skip List
 

Último

Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
HELENO FAVACHO
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
WagnerCamposCEA
 

Último (20)

praticas experimentais 1 ano ensino médio
praticas experimentais 1 ano ensino médiopraticas experimentais 1 ano ensino médio
praticas experimentais 1 ano ensino médio
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
Antero de Quental, sua vida e sua escrita
Antero de Quental, sua vida e sua escritaAntero de Quental, sua vida e sua escrita
Antero de Quental, sua vida e sua escrita
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 

Aula02 Pilhas

  • 1. MINICURSO DE ESTRUTURA DE 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 •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).
  • 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ÇÃ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.
  • 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 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].
  • 10. DUVIDAS? Aula 02 – Pilhas