image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Thaís Lotti
Thaís Lotti07/10/2024 17:46
Compartilhe

O que são as famosas Pilhas, árvores e filas?

    No vasto universo da programação, as estruturas de dados desempenham um papel vital na organização e manipulação de informações. Entre as diversas estruturas que podemos encontrar, três delas se destacam: pilhas, árvores e filas. Vamos explorar cada uma delas de forma clara e envolvente, permitindo que você entenda suas funcionalidades e como usá-las em seus projetos!

    Pilhas

    O que é uma Pilha?

    A pilha (ou stack, em inglês) é uma estrutura de dados que segue o princípio LIFO (Last In, First Out), ou seja, o último elemento a ser adicionado é o primeiro a ser removido. Você pode imaginar uma pilha de pratos: o último prato colocado no topo é o primeiro que você retira.

    Como Funciona?

    As operações básicas em uma pilha são:

    • Push: Adiciona um elemento no topo da pilha.
    • Pop: Remove o elemento do topo da pilha.
    • Peek (ou Top): Retorna o elemento do topo da pilha sem removê-lo.

    Exemplo de Uso

    Pilhas são amplamente utilizadas em programação para:

    • Controle de chamadas de funções (stack frames).
    • Desfazer ações em editores de texto.
    • Navegação em navegadores (histórico).

    Aqui está um exemplo simples de implementação de uma pilha em Python:

    
    class Pilha:  
      def __init__(self):  
          self.itens = []  
      
      def empilhar(self, item):  
          self.itens.append(item)  
      
      def desempilhar(self):  
          return self.itens.pop() if not self.esta_vazia() else None  
      
      def topo(self):  
          return self.itens[-1] if not self.esta_vazia() else None  
      
      def esta_vazia(self):  
          return len(self.itens) == 0  
    

    Árvores

    O que é uma Árvore?

    Uma árvore é uma estrutura de dados hierárquica composta por nós, onde cada nó contém um valor e referências para outros nós (filhos). A árvore tem um nó raiz e cada nó pode ter zero ou mais filhos. A maneira como os nós se conectam cria uma estrutura que facilita a organização e busca de dados.

    Tipos de Árvores

    • Árvore Binária: Cada nó pode ter no máximo dois filhos.
    • Árvore de Pesquisa Binária: Uma árvore binária onde, para cada nó, os valores do filho à esquerda são menores e os valores do filho à direita são maiores.
    • Árvore AVL: Uma árvore de pesquisa binária balanceada, que garante que a altura das subárvores de cada nó difira em no máximo um.

    Exemplo de Uso

    Árvores são usadas em:

    • Bases de dados (indexação).
    • Estruturas de arquivos (sistemas de arquivos).
    • Algoritmos de busca (como busca em largura ou profundidade).

    Aqui está um exemplo simples de uma árvore binária em Python:

    
    class No:  
      def __init__(self, valor):  
          self.valor = valor  
          self.esquerda = None  
          self.direita = None  
    
    class ArvoreBinaria:  
      def __init__(self):  
          self.raiz = None  
    
      def inserir(self, valor):  
          if self.raiz is None:  
              self.raiz = No(valor)  
          else:  
              self._inserir_recursivo(self.raiz, valor)  
    
      def _inserir_recursivo(self, noc, valor):  
          if valor < noc.valor:  
              if noc.esquerda is None:  
                  noc.esquerda = No(valor)  
              else:  
                  self._inserir_recursivo(noc.esquerda, valor)  
          else:  
              if noc.direita is None:  
                  noc.direita = No(valor)  
              else:  
                  self._inserir_recursivo(noc.direita, valor)  
    

    Filas

    O que é uma Fila?

    A fila (ou queue, em inglês) é uma estrutura de dados que implementa o princípio FIFO (First In, First Out). Assim como em uma fila de pessoas em um banco, a primeira pessoa a entrar é a primeira a ser atendida.

    Como Funciona?

    As operações básicas em uma fila são:

    • Enqueue: Adiciona um elemento no final da fila.
    • Dequeue: Remove o elemento do início da fila.
    • Front: Retorna o primeiro elemento da fila sem removê-lo.

    Exemplo de Uso

    Filas são usadas em:

    • Sistemas de impressão.
    • Chamadas de atendimento (sistemas de suporte).
    • Gerenciamento de tarefas assíncronas.

    Aqui está um exemplo simples de uma fila em Python:

    class Fila:  
      def __init__(self):  
          self.itens = []  
      
      def enfileirar(self, item):  
          self.itens.append(item)  
      
      def desenfilerar(self):  
          return self.itens.pop(0) if not self.esta_vazia() else None  
      
      def frente(self):  
          return self.itens[0] if not self.esta_vazia() else None  
      
      def esta_vazia(self):  
          return len(self.itens) == 0  
    

    Conclusão

    Entender pilhas, árvores e filas é fundamental para qualquer programador que deseja estruturar dados de maneira eficiente e lógica. Cada uma dessas estruturas possui características e aplicações que as tornam indispensáveis em diferentes contextos. Ao dominar essas estruturas, você estará mais preparado para enfrentar os desafios que surgirem em seus projetos de programação.

    Agora que você conhece um pouco mais sobre pilhas, árvores e filas, explore suas aplicações e veja como elas podem melhorar suas soluções e seus códigos! Boa programação!

    Compartilhe
    Comentários (3)
    Leonardo Oliveira
    Leonardo Oliveira - 08/10/2024 11:53

    Explicação ótima, estava com algumas duvidas sobre esse assunto agora entendi melhor, parabéns.

    GM

    Gabriel Martins - 07/10/2024 21:28

    Ótima explicação e com exemplos, sempre que estudava esse assunto me ficava uma duvida de como poderia implementar esses conceitos.

    BF

    Bernardo Filho - 07/10/2024 19:25

    Ótima explicação, parabéns!!!!!!!!