• Pilha Dinâmica
    (LIFO)

  • INFO:

  • HUB

  • 1/1

Informações da Estrutura
Estrutura de Dados

EstruturaPilha

{

  info : vetor de String;

  proximo : EstruturaPilha;

}

Topo : EstruturaPilha;

Descrição
"Uma pilha é um conjunto ordenado de itens no qual novos itens podem ser inseridos e a partir do qual podem ser eliminados itens em uma extremidade chamada topo da pilha" (Tenenbaum)

Mais informações
Implementação: Realizada por meio de uma lista encadeada de registros (em C, struct)

Regras: Primeiro a entrar é o último a sair, ou, First in, Last out (FILO).

Aplicação: Geralmente utilizada para substituir chamadas recursivas. Por exemplo, em vez de uma função (ou método) realizar várias chamadas a si mesma (o que poderia gastar muita memória para alocar toda a instância da chamada), uma pilha poderia, dentro de uma laço iterativo que remove e adiciona novos elementos, armazenar somente as variáveis necessárias de cada recursão (sendo representada por uma iteração).

Requisitos para aplicação: A aplicação não envolve recuperação de elementos diferentes do último que foi inserido, e o número máximo de elementos que a pilha vai armazenar é desconhecido, caso contrário, utiliza-se pilha estática.

Em relação a outras formas de implementação de Pilha
  • Vantagem: Armazena somente o número necessário de elementos.
  • Desvantagem: Um pouco mais complexa de implementar que a estática.
FUNÇÃO
Push(INFO) ou Insere(INFO) ou Empilha(INFO)

novo : NoPilha;

novo := alocar();

novo.info := INFO;

 

novo.proximo := Topo;

Topo := novo;

FUNÇÃO
Pop() ou Remove() ou Desempilha()
RETORNA
Último Elemento inserido, caso exista

Se Pilha != nulo então

INICIO

auxiliar : NoPilha;

auxiliar := Topo

Topo := Topo.proximo;

Retornar auxiliar.info;

FIM

FUNÇÃO
busca(INFO)
RETORNA
Se o valor está na pilha

leitor : NoPilha;

leitor := Topo;

 

Enquanto leitor != nulo faça

INICIO

Se leitor.info == INFO então

Retornar Verdadeiro;

leitor := leitor.proximo;

FIM

Retornar Falso

Última animação

Nenhuma animação disponível para revisar!

Executando animação ...

Aguarde encerrar !

Última animação que foi executada:

# Descrição
Entradas Programadas

Configurações

Entradas

Limpar entrada ao final da animação

Chance de gerar número negativo na entrada aleatória:

50%

Estrutura

Ocultar Ponteiros Nulos

Impedir inserção de valores repetidos

Mostrar Descritores

Cor do componente primário

Cor do componente secundário

Código

Usar delimitador em chaves

Contar linhas brancas

Configurações serão salvas para este navegador
Histórico
    • #
    • INFO
    • Vazio
Principal
Menu das Estruturas
  • Pseudo-código

  • Informações da Estrutura

  • Entradas Programadas

  • Rever Passos

  • Histórico

Pilha Dinâmica (LIFO)

  • Vazio
Logo

Estruturas

Listas

Sem ordenação

Simples

Dupla

Com ordenação

Simples

Dupla

Estática

Cruzada

Filas

Estáticas

Simples

Circular

Dinâmicas

Normal

Com Prioridade

Circular

Pilhas

Estáticas

Simples

Múltipla

Dinâmicas

Simples

Hashing

Sem Tratamento

Simples

Com Tratamento

Listas Encadeadas

Área de Overflow

Árvores

Balanceadas

AVL

Rubro-Negra

B

Não Balanceadas

Binária

Trie

Patricia

Histórico

Lista Ordenada Simples

Lista Ordenada Estática

Lista Ordenada Dupla

Lista Sem Ordenação Simples

Lista Sem Ordeneção Dupla

Lista Cruzada

Fila Estática

Fila Estática Circular

Fila com Prioridade

Fila Dinâmica

Fila Circular

Pilha Estática

Pilha Múltipla

Pilha Dinâmica

Hash sem Tratamento

Hash com Tratamento

Hash com Overflow

Árvore AVL

Árvore B

Árvore RubroNegra

Árvore Binária

Árvore Trie

Árvore Patricia

Estrutura não encontrada