Академический Документы
Профессиональный Документы
Культура Документы
TOMÁS DE MOÇAMBIQUE
CURSO DE TECNOLOGIAS DE SISTEMAS DE
INFORMAÇÃO
Estrutura de Dados e Algoritmos
Ano 2007
Aula 7: Filas
Conteúdo
1. Conceito
2. Operações
3. Implementação
4. Exercícios práticos
1
1. Conceito
A fila é uma lista linear em que todas as inserções de novos elementos são realizadas
numa extremidade da lista e todas as remoções de elementos são feitas na outra
extremidade da lista.
Fila é uma estrutura de dados simples, linear e de acesso sequencial, porém, diferente da
pilha. Esta, pode ser manipulada por 2 extremidades conhecidas como “cauda” (por onde
é feita a inserção de elementos na fila) e “frente” (por onde é possível remover-se os
elementos). Tal restrição define uma prioridade para a remoção de elementos, de tal
forma que o primeiro elemento a ser inserido na fila, será o primeiro a ser removido. Por
causa disso a fila é conhecida como uma estrutura FIFO – First In First Out.
Na representação sequencial usa-se um array, o que faz com que a capacidade da fila seja
fixa, enquanto que na representação ligada, usa-se lista simples.
2
Representação Sequencial de Fila
Tal como na pilha, temos nesta estrutura de dados duas operações básicas que são
enqueue (permite inserir um novo elemento na cauda da fila) e dequeue (permite
remover o elemento que esta na frente da fila).
Operações Associadas:
3
4) Devolver o tamanho da fila. getSize()
5) Mostrar o conteúdo da fila. print()
3. Implementação da Fila
A fila pode ser implementada de duas maneiras: a primeira é usando a estrutura estática
Array e a outra é fazendo o uso da estrutura dinâmica lista.
//Cria a fila
public SequentialQueue (){
Q = new Object[size];
}
… … … … …
… … … … …
4
2) Inserir um novo elemento na fila. enqueue()
5
3.2 Implementação usando Lista Ligada
Na implementação de fila usando a estrutura dinâmica, uma lista deve ser definida para
representá-la.
//constructor
public Node(Object anItem){
item = anItem;
next = null;
}
//métodos de acesso
public Object getItem(){
return item;
}
public void setItem(Object anItem){
item = anItem;
}
public Node getNext(){
return next;
}
6
1) Verificar se a fila está ou não vazia. empty()
A fila está vazia se front = null
7
3) Remover o elemento que está na frente da fila. dequeue()
8
5) Mostrar o conteúdo da fila. print()
9
5. Exercícios
2) Suponha que uma fila é implementada de forma ligada com elementos do seguinte
tipo:
public Estudante
{
String nome;
int nota;
Estudante next;
}
________________________________________________________________________
Docentes regentes:
Rossana Abdul Carimo
Hamilton Isaias Mutaquiha
10