S O

2011 palavras 9 páginas
Filas
Uma fila é uma estrutura de dados que admite remoção de elementos e inserção de novos elementos. Mais especificamente, uma fila (= queue) é uma estrutura sujeita à seguinte regra de operação: sempre que houver uma remoção, o elemento removido é o que está na estrutura há mais tempo.
Em outras palavras, o primeiro objeto inserido na fila é também o primeiro a ser removido. Essa política é conhecida pela sigla FIFO (= First-In-First-Out).
Implementação em um vetor
Suponha que nossa fila mora em um vetor fila[0..N-1]. (A natureza dos elementos do vetor é irrelevante: eles podem ser inteiros, caracteres, ponteiros, etc.) Digamos que a parte do vetor ocupada pela fila é fila[ini..fim-1] .
O primeiro elemento da fila está na posição ini e o último na posição fim-1. A fila está vazia se ini == fim e cheia se fim == N. A figura mostra uma fila que contém os números 111, 222, … , 666:
0

ini

fim

N-1

111
222
333
444
555
666

Para remover, ou retirar (= delete = de-queue), um elemento da fila basta fazer x = fila[ini++];
Isso equivale ao par de instruções x = fila[ini]; ini += 1;, nesta ordem. É claro que você só deve fazer isso se tiver certeza de que a fila não está vazia.
Para colocar, ou inserir (= insert = enqueue), um objeto y na fila basta fazer fila[fim++] = y;
Note como esse código funciona bem mesmo quando a fila está vazia. É claro que você só deve inserir um elemento na fila se ela não estiver cheia; caso contrário, a fila transborda (ou seja, ocorre um overflow). Em geral, a tentativa de inserir em uma fila cheia é uma situação excepcional, que indica um mau planejamento lógico do seu programa.
Exercícios 1
1. Escreva uma função que devolva o comprimento (ou seja, o número de elementos) de uma fila dada.
2. Escreva funções sai e entra para remover e inserir em uma fila. Lembre-se de que uma fila é um pacote com dois objetos: um vetor e dois índice. Quais os parâmetros de suas funções? Não use variáveis

Relacionados

  • eddddf s s s
    662 palavras | 3 páginas
  • S
    537 palavras | 3 páginas
  • S
    2509 palavras | 11 páginas
  • S
    11820 palavras | 48 páginas
  • S
    1661 palavras | 7 páginas
  • S
    2546 palavras | 11 páginas
  • S
    2653 palavras | 11 páginas
  • S
    3461 palavras | 14 páginas
  • S O Lu S
    484 palavras | 2 páginas
  • bnvkf,s,s
    5877 palavras | 24 páginas