Buscar

09_Pilhas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

PILHAS ESTÁTICAS E DINÂMICASPILHAS ESTÁTICAS E DINÂMICAS
.: ESTRUTURA DE DADOS :..: ESTRUTURA DE DADOS :.
André Macedo SantanaAndré Macedo SantanaAndré Macedo SantanaAndré Macedo SantanaAndré Macedo SantanaAndré Macedo SantanaAndré Macedo SantanaAndré Macedo Santana
andremacedo@ufpi.edu.br
PilhasPilhas EstáticasEstáticas SequenciaisSequenciais
• Pilha é um conceito muito utilizado na Ciência da Computação. Consiste em uma
metáfora emprestada do mundo cotidiano para resolver muitos problemas de
forma simplificada, pois é uma estrutura muito simples e muito poderosa como
elemento básico de solução de problemas complexos;
• São estruturas lineares com disciplina de acesso;
ConceitosConceitos
André M. Santana UFPI - CCN - DIEEstruturas de Dados
• Uma Pilha é um caso especial de lista na qual as inserções e retiradas são feitas
em uma extremidade denominada topo, cujo critério de acesso é denominado
LIFO -Last In First Out;
• Em uma Pilha só se admite ter acesso ao elemento no topo da pilha, ou seja,
todas as inserções e/ou remoções são feitas por essa extremidade;
• Em outras palavras, uma Pilha é uma sequencia em que só o primeiro
componente é diretamente acessível;
Pilha Estática Sequencial
Procedimentos básicos:
• inicializar pilha;
• inserir um elemento - empilhar;
• excluir um elemento - desempilhar;
• acessar um elemento - topo;
EstruturaEstrutura e e OperaçõesOperações
PilhasPilhas EstáticasEstáticas SequenciaisSequenciais
André M. Santana UFPI - CCN - DIEEstruturas de Dados
• Antes de começar a carregar a Pilha com os dados é necessário declarar a
estrutura e inicializá-la. O processo de inicialização é realizado por uma função
que atribui o valor de -1 à variável topo;
• Outra função primitiva de pilha é a que realizar a tarefa de empilhar. Se a pilha
não estiver cheia, incrementamos a variável topo de uma unidade para indicar o
endereço em que será inserido o novo elemento;
OperaçõesOperações: : InserirInserir ouou EmpilharEmpilhar
PilhasPilhas EstáticasEstáticas SequenciaisSequenciais
André M. Santana UFPI - CCN - DIEEstruturas de Dados
• Outra função primitiva de pilha é a que realiza a tarefa de desempilhar, ou seja,
elimina o elemento que está no topo da pilha. Para tal, basta decrementar a
variável topo de uma unidade;
• Na área computacional existem inúmeras aplicações em Pilha:
• Caminhamento em árvores;
• Avaliação de expressões;
• Inversão de listas;
• Conversão de notações;
• Exemplo:
AplicaçõesAplicações
PilhasPilhas EstáticasEstáticas SequenciaisSequenciais
André M. Santana UFPI - CCN - DIEEstruturas de Dados
• Exemplo:
• (A+B) / (C+D)
• {A+[B-C]+[(A+C)/(B-C)]}
• Notações
Infixa Prefixa Posfixa
A-B+C +-ABC ABC+-
(A-B)/(C+D) /(-AB)(+CD) (AB-)(CD+)/
A*(B-C) -(* A)BC A(BC-)*
• Podemos implementar duas Pilhas em um só vetor. Basta que delimitemos onde
se iniciará a primeira e onde começará a seguinte. Assim, teremos várias pilhas
em um único vetor;
DuasDuas PilhasPilhas emem um um únicoúnico vetorvetor
PilhasPilhas EstáticasEstáticas SequenciaisSequenciais
André M. Santana UFPI - CCN - DIEEstruturas de Dados
Pilha Estática com Encadeamento
Procedimentos básicos:
• inicializar pilha;
• inserir um elemento - empilhar;
• excluir um elemento - desempilhar;
• acessar um elemento - topo;
EstruturaEstrutura e e OperaçõesOperações
PilhasPilhas EstáticaEstática com com EncadeamentoEncadeamento
André M. Santana UFPI - CCN - DIEEstruturas de Dados
• A função inicializar_pl() inicia a pilha atribuindo valores iniciais para as
variáveis topo e disp
OperaçõesOperações: : InicializarInicializar
PilhasPilhas EstáticaEstática com com EncadeamentoEncadeamento
André M. Santana UFPI - CCN - DIEEstruturas de Dados
• O procedimento empilhar_pl() recebe o endereço da estrutura Pilha e o elemento
a ser inserido x.
OperaçõesOperações: : EmpilharEmpilhar
PilhasPilhas EstáticaEstática com com EncadeamentoEncadeamento
André M. Santana UFPI - CCN - DIEEstruturas de Dados
• A rotina desempilhar_pl() retira o elemento do topo da pilha.
OperaçõesOperações: : DesmpilharDesmpilhar
PilhasPilhas EstáticaEstática com com EncadeamentoEncadeamento
André M. Santana UFPI - CCN - DIEEstruturas de Dados
• Como o elemento principal de uma Pilha é o topo, normalmente constrói-se
uma função para acessar o valor desse elemento.
OperaçõesOperações: : ConsultarConsultar TopoTopo
PilhasPilhas EstáticaEstática com com EncadeamentoEncadeamento
André M. Santana UFPI - CCN - DIEEstruturas de Dados
pilha.h
InterfaceInterface
PilhasPilhas DinâmicasDinâmicas com com EncadeamentoEncadeamento
André M. Santana UFPI - CCN - DIEEstruturas de Dados
• A função criar_pl() aloca dinamicamente uma estrutura pilha, inicializa seus
campos e retorna seu ponteiro; as funções push() e pop() inserem e retiram,
respectivamente, um elemento da pilha; a função pilhavazia() informa se a
apilha está ou não vazia; e a função liberar_pl() destrói a pilha e libera toda a
memória usada pela estrutura;
FunçõesFunções
PilhasPilhas DinâmicasDinâmicas com com EncadeamentoEncadeamento
Criar uma pilha
André M. Santana UFPI - CCN - DIEEstruturas de Dados
Inserir elemento na pilha
Excluir elemento da pilha
FunçõesFunções
PilhasPilhas DinâmicasDinâmicas com com EncadeamentoEncadeamento
Testar se a pilha está vazia
André M. Santana UFPI - CCN - DIEEstruturas de Dados
Liberar pilha
EXERCÍCIOSEXERCÍCIOS
PilhasPilhas
André M. Santana UFPI - CCN - DIEEstruturas de Dados

Continue navegando