Upload
leinylson-fontinele
View
119
Download
1
Embed Size (px)
Citation preview
# Estrutura de Dados #Aula 06 – Pilhas Estáticas
Prof. Leinylson Fontinele Pereira
Na aula anterior...
Filas Estáticas Sequencial# Propriedades
# Operações fundamentais
12:05 Estrutura de Dados: Aula 06 - Pilhas Estáticas
Introdução
12:05 3 Estrutura de Dados: Aula 06 - Pilhas Estáticas
O que vamos aprender?
Pilhas Estáticas# Propriedades
# Operações fundamentais
12:05 Estrutura de Dados: Aula 06 - Pilhas Estáticas
Vamos começar?
12:05 5 Estrutura de Dados: Aula 06 - Pilhas Estáticas
12:05
O que é uma Pilha?
Estrutura de Dados: Aula 06 - Pilhas Estáticas
12:05
Algumas Pilhas...
Estrutura de Dados: Aula 06 - Pilhas Estáticas
O que é uma Pilha?
12:05
Uma pilha é uma estrutura de dados em que todo o acesso a seus elementos é feito
através do seu topo
Estrutura de Dados: Aula 06 - Pilhas Estáticas
Operações Básicas em uma Pilha
12:05
Criação da pilha
Inserção de um elemento no início
Remoção de um elemento do início
Aceso ao elemento do início
Destruição da pilhaEstrutura de Dados: Aula 06 - Pilhas Estáticas
Pilha: Características
12:05
O elemento removido é o que está naestrutura há menos tempo
O último objeto inserido na pilha é tambémo primeiro a ser removido
𝐿𝐼𝐹𝑂 (𝐿𝑎𝑠𝑡‐ 𝐼𝑛‐ 𝐹𝑖𝑟𝑠𝑡‐ 𝑂𝑢𝑡)
Estrutura de Dados: Aula 06 - Pilhas Estáticas
Pilha: Índices de Controle da Pilha
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
LIMITE
Tamanho máximo que pode ser ocupado pela pilha
TOPO
Atual posição de consulta da pilha
BASE
Ponto de início da pilha
Executando as Operações na Pilha
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
Executando as Operações na Pilha
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
Aplicações com Pilha
12:05 14 Estrutura de Dados: Aula 06 - Pilhas Estáticas
Identificando Palíndromos com Pilha
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
Relembrando...
Palíndromos são palavras/frases que são iguais quando lidas de frente para trás
Exemplos: Ana
Arara
Rotor
Socorram me subi no onibus em marrocos
• Desconsiderando os espaços em branco
Identificando Palíndromos com Pilha
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
Algoritmo
Identificando Palíndromos
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
Identificando Palíndromos
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
Empilha letra 1
Identificando Palíndromos
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
Empilha letra 2
Identificando Palíndromos
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
Descarta letra central
Identificando Palíndromos
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
Comparar topo com próxima letra
Identificando Palíndromos
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
Se são iguais então desempilhe
Identificando Palíndromos
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
Comparar topo com próxima letra
Identificando Palíndromos
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
Se são iguais então desempilhe
Se no final a pilha está vazia então é um palíndromo
Balanceamento de Expressões
12:05
Pilhas podem ser utilizadas para verificar seos parênteses em uma expressão estãobalanceadosExemplo:
((3 + 4 + (4 ∗ 9)ERRO: Faltam dois parênteses fechando!
Estrutura de Dados: Aula 06 - Pilhas Estáticas
Balanceamento de Expressões
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
((𝟑 + 𝟒 + (𝟒 ∗ 𝟗)
Chamadas de Funções
12:05
O Sistema Operacional utiliza pilhapara tratar as chamadas a funções
Fazendo uso de recursividade
Estrutura de Dados: Aula 06 - Pilhas Estáticas
12:05
Entenderam o conceito da Pilha?
Estrutura de Dados: Aula 06 - Pilhas Estáticas
Pilha: Implementação em Vetor
12:05
Supondo a pilha está armazenada em um vetor 𝑝𝑖𝑙ℎ𝑎[0. . 𝑛 − 1]
A parte do vetor ocupada pela pilha será:
Estrutura de Dados: Aula 06 - Pilhas Estáticas
Pilha: Implementação em Vetor
12:05
A natureza dos elementos do vetor é irrelevante, eles podem serinteiros, caracteres, ponteiros, etc...
O índice 𝑡 indica a primeira posição vaga da pilha
𝑡1 é o índice do topo da pilha.
A pilha está vazia se 𝑡 = 0 e cheia se 𝑡 = 𝑁
Estrutura de Dados: Aula 06 - Pilhas Estáticas
Pilha: Removendo um Elemento
12:05Estrutura de Dados: Aula 05 - Filas Estáticas
Pilha: Removendo um Elemento
12:05
Para remover (desempilhar, pop) um elemento:
Estrutura de Dados: Aula 06 - Pilhas Estáticas
Pilha: Inserindo um Elemento
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
Pilha: Inserindo um Elemento
12:05
Para inserir (empilhar, push) o elemento 𝑦 na pilha pilha:
Estrutura de Dados: Aula 06 - Pilhas Estáticas
Nesta aula aprendemos... Pilhas Estáticas
# Propriedades
# Operações fundamentais
12:05 Estrutura de Dados: Aula 06 - Pilhas Estáticas
Material: https://sites.google.com/site/leinylsonuespi
12:05
Material baseado nas aulas de:
Estrutura de dados e algoritmos, Prof. Sérgio Souza Costa
Estrutura de Dados: Aula 06 - Pilhas Estáticas
Na próxima aula veremos...
Prática com listas, filas e pilhas
Arquivos# Teoria e Prática de laboratório
12:05 Estrutura de Dados: Aula 06 - Pilhas Estáticas
Prática
12:05 39
As aulas práticas foram baseadas no material de
Linguagem C Descomplicada , Dr. André R. Backes.
Disponível em: https://programacaodescomplicada.wordpress.com/
Estrutura de Dados: Aula 06 - Pilhas Estáticas
Pilha Estática
12:05
PilhaSequencial.h
Os protótipos das funções
O tipo de dado armazenado na pilha
O ponteiro pilha
Tamanho do vetor usado na pilha
Estrutura de Dados: Aula 06 - Pilhas Estáticas
Pilha Estática
12:05
PilhaSequencial.c
O tipo de dados pilha
Implementar as suas funções
Estrutura de Dados: Aula 06 - Pilhas Estáticas
12:05 42
Definindo a Pilha
Estrutura de Dados: Aula 06 - Pilhas Estáticas
Definindo a Pilha
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
12:05 44
Criando a Pilha
Estrutura de Dados: Aula 06 - Pilhas Estáticas
Criando a Pilha
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
1. Definir valor do índice de BASE da pilha
2. Definir valor máximo (LIMITE) de nodos que a pilha pode ter
3. Indicar que a pilha está vazia através do valor de TOPO
Criando a Pilha
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
Criando a Pilha
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
12:05 48
Destruindo a Pilha
Estrutura de Dados: Aula 06 - Pilhas Estáticas
Destruindo a Pilha
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
12:05 50
Tamanho da Pilha
Estrutura de Dados: Aula 06 - Pilhas Estáticas
Tamanho da Pilha
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
12:05 52
A Pilha está Cheia?
Estrutura de Dados: Aula 06 - Pilhas Estáticas
Pilha Cheia
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
12:05 54
A Pilha está Vazia?
Estrutura de Dados: Aula 06 - Pilhas Estáticas
Pilha Vazia
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
12:05 56
Algumas Considerações
Estrutura de Dados: Aula 06 - Pilhas Estáticas
Algumas Considerações
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
12:05 58
Inserindo na Pilha
Estrutura de Dados: Aula 06 - Pilhas Estáticas
Inserindo na Pilha
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
Inserindo na Pilha
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
12:05 61
Removendo da Pilha
Estrutura de Dados: Aula 06 - Pilhas Estáticas
Removendo da Pilha
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
Removendo da Pilha
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
12:05 64
Consultando um elemento na Pilha
Estrutura de Dados: Aula 06 - Pilhas Estáticas
Consultando um elemento na Pilha
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas
Consultando um elemento na Pilha
12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas