Í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