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
  • Início e final da fila
  • Tamanho da fila

Was this helpful?

  1. Estrutura de Dados
  2. 4. Filas
  3. Operações

Impressão, inicio e final da fila

Estrutura de Dados: Fila

Contudo, novamente, estamos adicionando e removendo elementos, mas ainda não conseguimos acompanhar o crescimento da fila.

Como tais funções devem ser implementadas. Neste caso, não há nomes fixos para esses métodos, mas eles devem ter nomes claros sobre isso.

Para imprimir a fila, basta implementar o método __repr__(método recomendado para exibir informações dos objetos)

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

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

  def __repr__(self):
    return "[" + str(self.cabeca) + "]"

  def inserir(self, elemento):
    novo_no = No(elemento)

    if self.cabeca == None:
      self.cabeca = self.cauda = novo_no
    else:
      self.cauda.proximo = novo_no
      self.cauda = novo_no

  def remover(self):
    assert self.cabeca != None, "Impossível remover elemento de fila vazia."
    self.cabeca = self.cabeca.proximo
    if self.cabeca == None:
        self.cauda = None

Início e final da fila

Outra operação importante, é a verificação do início da fila. Para isto, basta acessar os atributos cabeca e cauda da fila.

Tamanho da fila

Por fim, um método para verificar o tamanho da estrutura. Para imprimir o tamanho, basta executar print(len(fila))

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

  def __len__(self):
    atual = self.cabeca
    total = 0
    while atual is not None:
      total += 1
      atual = atual.proximo
    return total
PreviousRemoção de ElementosNextExemplo

Last updated 4 years ago

Was this helpful?