Вы находитесь на странице: 1из 17

Estrutura de Dados Fila

Fila

Estrutura de Dados Fila

Uma fila uma estrutura de dados linear na qual as inseres so realizadas em um extremo, ficando as remoes restritas ao outro

Estrutura de Dados Fila

O extremo onde os elementos so inseridos denominado final da fila, e aquele de onde so removidos denominado comeo da fila

Estrutura de Dados Fila

Os objetos so inseridos e removidos de acordo com o princpio: o primeiro que entra o primeiro que sai FIFO First In, First Out

Estrutura de Dados Fila - Operaes

Enqueue: Insere um novo elemento na fila Dequeue: Remove um elemento da fila Init: Inicializa a fila no estado vazia IsEmpty Verifica se a fila est vazia

Retorna true caso a fila esteja vazia IsFull

Verifica se a fila est cheia


Retorna true caso no haja mais espao para armazenar nenhum elemento na fila

Estrutura de Dados Fila

Declarando Queue fila= new Queue(); Inserindo elementos fila. Enqueue(Joo);

Estrutura de Dados Fila Declarando Queue fila= new Queue(); Inserindo elementos fila. Enqueue(Joo); fila. Enqueue(Jos);

Estrutura de Dados Fila Declarando


Queue fila= new Queue();

Inserindo elementos
fila. Enqueue(Joo); fila. Enqueue(Jos); Fila.Enqueue(Pedro);

Estrutura de Dados Fila Declarando Queue fila= new Queue(); Removendo elementos String nome = fila.Dequeue();

Estrutura de Dados Fila Declarando Queue fila= new Queue(); Removendo elementos String nome = fila.Dequeue(); String nome = fila.Dequeue();

Estrutura de Dados Fila

Fila - Aplicaes
Exemplo 1: Servio de Impresso
Quando vrios programas solicitam o servio de uma impressora, os trabalhos so atendidos na ordem de chegada

Os trabalhos so colocados em uma fila

Estrutura de Dados Fila

Fila - Aplicaes

Exemplo 2: Servio de rede Outro exemplo diz respeito s redes de computadores

Em sistemas onde temos um computador funcionando como servidor de arquivo


os usurios tm acesso aos dados armazenados no disco na ordem de chegada, isto , so colocados em uma fila

Estrutura de Dados Fila Operao -------Enqueue(F,a) Enqueue(F,b) Enqueue(F,c) Enqueue(F,d) Dequeue(F) Dequeue(F) Enqueue(F,e) Dequeue(F) Enqueue(F,c) Enqueue(F,f) Dequeue(F) Dequeue(F)

Estado da Fila Resultado F: [] -------F: [a] -------F: [a,b] -------F: [a,b,c] -------F: [a,b,c,d] -------F: [b,c,d] a F: [c,d] b F: [c,d,e] -------F: [d,e] c F: [d,e,c] -------F: [d,e,c,f] -------F: [e,c,f] d F: [c,f] e

Estrutura de Dados Fila

Estrutura de Dados - Fila


public class Fila { int[ ] data; private int fim; private int inicio; public Fila(int capacidade) { data = new int[capacidade]; fim = 0; inicio = 0; } public void enqueue(int i) { System.out.println("Inserindo elemento:" + i); data[fim] = i; fim++; } }

Estrutura de Dados Fila public int dequeue() {


int temp = data[inicio]; System.out.println("Removendo elemento:" + temp); inicio++; return temp; } public void print() { System.out.println("***********************************************"); System.out.println("Fila=[inicio=" + inicio + ", fim=" + fim + "]"); for (int i = inicio; i < fim; i++) { System.out.println("Elemento na pos " + i + ", valor:" + data[i]); } System.out.println(" "); } }

Estrutura de Dados Fila

public static void main(String[ ] args) { Fila f = new Fila(10); f.enqueue(10); f.print(); f.enqueue(11); f.print(); f.enqueue(12); f.print(); f.dequeue(); f.print(); }