Índice > Fila > Implementação Estática Seqüencial

Instituto de Ciências Matemáticas de São Carlos 
Departamento de Computação e Estatística 
SCE182 - Algoritmos e Estruturas de Dados 1 
Profs. Resp.: Graça Pimentel,  Maria Cristina e Rosane

Implementação Estática Seqüencial

Definição da Estrutura de Dados

  Type índice = 0..maxfila;
       fila   = array[1..maxfila] of T;
  Var
    F: fila;
    Começo,        {posição anterior ao primeiro elemento}
    Fim: índice;   {posição do último elemento}
-> Refazer as operações abaixo, para o cado da fila ser definida da seguinte estrutura: 

  Type 
    aloc_filha = array [1..maxfila] of T; 
    indice = 0 .. maxfila; 
    pilha = record 
                 info: aloc_fila; 
                 comeco, fim: indice; 
            end; 
  
  Var 
    F: fila;

Operações com Filas

1. Criar (F) - criar uma fila F vazia
  Procedure CriaFila (Var Começo, Fim: indice); 
  Begin
      Começo := 0;
      Fim := 0;
  End;
2. Inserir (x, F) - insere x no fim de F
  Procedure Inserir (x: T; Var F: fila; Var Fim: indice);
  Begin
  If Fim < maxfila Then
    Begin
      Fim := Fim + 1;
      F[Fim] := x;
    End
  Else 
    { OVERFLOW }
  End;
3. Vazia (F) - testa se F está vazia
  Function Vazia (Começo, Fim: indice): Boolean;
  Begin
   Vazia:= (Começo=Fim);
  End;
4. Primeiro (F) - acessa o elemento do início da fila
  Function Primeiro (F: fila; Começo: indice): T;
  Begin
     x := F[Começo + 1];
  End;
5. Elimina (F) - elimina o elemento do início da fila
  Procedure Eliminar (Var Começo: indice, Fim: indice);
  Begin
  If Vazia (Começo,Fim) then 
    {FILA VAZIA}
  Else
    Começo := Começo + 1;  
  End;
-> Fazer a operação Elimina que retornando o elemento eliminado.
-> Desenvolver o TAD Fila
Essa solução possui o problema de Overflow com espaço no vetor.

Alocação Dinâmica

Fila