Estrutura de Dados
  • Programação e Estrutura de Dados
  • Estrutura de Dados
    • 1. Vetores e Matrizes
      • Vetores
      • Matrizes
      • Listas de Exercícios
    • 2. Listas Lineares
      • Lista Encadeada Simples
      • Lista Duplamente Encadeada
    • 3. Pilhas
      • Visão Geral
      • Operações
        • Criação de Pilhas
        • Inserção de elementos
        • Remoção de elementos
        • Impressão, topo e tamanho da pilha
      • Exemplo
    • 4. Filas
      • Visão Geral
      • Operações
        • Criação das Filas
        • Inserção de Elementos
        • Remoção de Elementos
        • Impressão, inicio e final da fila
      • Exemplo
    • 5. Recursividade
      • Visão geral
      • Exemplos
        • Execução do Algoritmo de Fibonacci Recursivo
    • 6. Algoritmos de Busca
      • Busca Sequencial
      • Busca Binária
      • Exemplos
    • 7. Algoritmos de Ordenação
      • Ordenação
      • Bubble Sort
      • Selection Sort
      • Insertion Sort
      • Merge Sort
      • Quicksort
    • 8. Árvores
      • Introdução
      • Árvores Binárias
      • Árvores Binárias de Busca
      • Árvores AVL
    • 9. Indexação e Hashing
    • 10. Grafos
  • Programação Orientada a Objetos
    • 1. Introdução a Orientação a Objetos
Powered by GitBook
On this page

Was this helpful?

  1. Estrutura de Dados
  2. 3. Pilhas
  3. Operações

Inserção de elementos

Estrutura de Dados: Pilha

PreviousCriação de PilhasNextRemoção de elementos

Last updated 4 years ago

Was this helpful?

Inicialmente, é importante entender o funcionamento de uma pilha.

A Figura a seguir ilustra como deve ser o armazenamento dos novos dados em uma pilha. Percebam que todo novo elemento inserido (pode ser de qualquer tipo de dado) é SEMPRE adicionado no topo da estrutura, assim como fazemos com as moedas mencionadas no começo dessa conversa (Como estamos trabalhando com lista o topo representa o final da lista).

Em código, para adicionarmos um novo elemento devemos adicionar elementos na lista que foi inicializada na pilha. Para isto, criaremos uma função denominada PUSH que recebe como parâmetro o elemento que precisa ser adicionado à pilha. A lógica para inserção é a mesma utilizada para inserir no início em listas encadeadas. O novo nó deve apontar para o topo atual como próximo e em seguida se tornará o topo.

class Pilha:
  def __init__(self):
    self.topo = None

  def is_empty(self):
    return self.topo is None

  def push(self, elemento):
    no = No(elemento)
    no.anterior = self.topo
    self.topo = no

Como devemos testar?

#pilha.py

from pilha import Pilha 

def main():
    pilhaTeste = Pilha()
    pilha.push("elemento 1)

main()

Inserção Pilha