estrutura de dados - aula 06 - pilhas estáticas

66
# Estrutura de Dados # Aula 06 – Pilhas Estáticas Prof. Leinylson Fontinele Pereira

Upload: leinylson-fontinele

Post on 13-Apr-2017

119 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Estrutura de Dados - Aula 06 - Pilhas Estáticas

# Estrutura de Dados #Aula 06 – Pilhas Estáticas

Prof. Leinylson Fontinele Pereira

Page 2: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Na aula anterior...

Filas Estáticas Sequencial# Propriedades

# Operações fundamentais

12:05 Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 3: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Introdução

12:05 3 Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 4: 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

Page 5: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Vamos começar?

12:05 5 Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 6: Estrutura de Dados - Aula 06 - Pilhas Estáticas

12:05

O que é uma Pilha?

Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 7: Estrutura de Dados - Aula 06 - Pilhas Estáticas

12:05

Algumas Pilhas...

Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 8: 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

Page 9: 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

Page 10: Estrutura 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

Page 11: 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

Page 12: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Executando as Operações na Pilha

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 13: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Executando as Operações na Pilha

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 14: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Aplicações com Pilha

12:05 14 Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 15: 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

Page 16: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Identificando Palíndromos com Pilha

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Algoritmo

Page 17: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Identificando Palíndromos

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 18: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Identificando Palíndromos

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Empilha letra 1

Page 19: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Identificando Palíndromos

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Empilha letra 2

Page 20: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Identificando Palíndromos

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Descarta letra central

Page 21: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Identificando Palíndromos

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Comparar topo com próxima letra

Page 22: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Identificando Palíndromos

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Se são iguais então desempilhe

Page 23: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Identificando Palíndromos

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Comparar topo com próxima letra

Page 24: Estrutura de Dados - Aula 06 - Pilhas Estáticas

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

Page 25: Estrutura de Dados - Aula 06 - Pilhas Estáticas

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

Page 26: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Balanceamento de Expressões

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

((𝟑 + 𝟒 + (𝟒 ∗ 𝟗)

Page 27: Estrutura 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

Page 28: Estrutura de Dados - Aula 06 - Pilhas Estáticas

12:05

Entenderam o conceito da Pilha?

Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 29: 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

Page 30: 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

Page 31: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Pilha: Removendo um Elemento

12:05Estrutura de Dados: Aula 05 - Filas Estáticas

Page 32: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Pilha: Removendo um Elemento

12:05

Para remover (desempilhar, pop) um elemento:

Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 33: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Pilha: Inserindo um Elemento

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 34: Estrutura 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

Page 35: 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

Page 36: 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

Page 37: 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

Page 38: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Alguma Dúvida?

12:05

Até a próxima aula...

[email protected]

Page 39: 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

Page 40: 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

Page 41: 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

Page 42: Estrutura de Dados - Aula 06 - Pilhas Estáticas

12:05 42

Definindo a Pilha

Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 43: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Definindo a Pilha

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 44: Estrutura de Dados - Aula 06 - Pilhas Estáticas

12:05 44

Criando a Pilha

Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 45: 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

Page 46: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Criando a Pilha

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 47: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Criando a Pilha

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 48: Estrutura de Dados - Aula 06 - Pilhas Estáticas

12:05 48

Destruindo a Pilha

Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 49: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Destruindo a Pilha

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 50: Estrutura de Dados - Aula 06 - Pilhas Estáticas

12:05 50

Tamanho da Pilha

Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 51: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Tamanho da Pilha

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 52: Estrutura de Dados - Aula 06 - Pilhas Estáticas

12:05 52

A Pilha está Cheia?

Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 53: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Pilha Cheia

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 54: Estrutura de Dados - Aula 06 - Pilhas Estáticas

12:05 54

A Pilha está Vazia?

Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 55: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Pilha Vazia

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 56: Estrutura de Dados - Aula 06 - Pilhas Estáticas

12:05 56

Algumas Considerações

Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 57: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Algumas Considerações

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 58: Estrutura de Dados - Aula 06 - Pilhas Estáticas

12:05 58

Inserindo na Pilha

Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 59: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Inserindo na Pilha

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 60: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Inserindo na Pilha

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 61: Estrutura de Dados - Aula 06 - Pilhas Estáticas

12:05 61

Removendo da Pilha

Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 62: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Removendo da Pilha

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 63: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Removendo da Pilha

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 64: Estrutura de Dados - Aula 06 - Pilhas Estáticas

12:05 64

Consultando um elemento na Pilha

Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 65: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Consultando um elemento na Pilha

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas

Page 66: Estrutura de Dados - Aula 06 - Pilhas Estáticas

Consultando um elemento na Pilha

12:05Estrutura de Dados: Aula 06 - Pilhas Estáticas