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. 4. Filas
  3. Operações

Criação das Filas

Estrutura de Dados: Fila

PreviousOperaçõesNextInserção de Elementos

Last updated 4 years ago

Was this helpful?

Em filas, inserções ocorrem no final e remoções ocorrem no começo. Para isso, usaremos dois ponteiros: um para o começo da fila, e outro para o final. Esses ponteiros nos permitirão implementar inserções e remoções com custo constante.

Para criarmos uma fila, o primeiro passo é criar uma classe Fila, pois ela é um elemento fundamental dessa nossa explicação. Como usaremos a estrutura encadeada, também é necessário implementar a classe Nó, que representa cada elemento da fila.

class No:
  def __init__(self, carga=0, proximo=None):
    self.carga = carga
    self.proximo = proximo

  def __repr__(self):
    return '%s -> %s' % (self.carga, self.proximo)
        
class Fila:
  def __init__(self, cabeca=None, cauda=None):
    self.cabeca = cabeca
    self.cauda = cauda

Note que o método __init__ atribui o valor None inicialmente à cabeça e a à cauda da lista.

Verificando se a fila está vazia

Para verificar se a fila está vazia, implemente o método is_empty() verificando se há algum valor atribuído à cabeça da lista.

class Fila:
  def __init__(self, cabeca=None, cauda=None):
    self.cabeca = cabeca
    self.cauda = cauda

  def is_empty(self):
    return self.cabeca is None
Funcionamento de Fila