Escolar Documentos
Profissional Documentos
Cultura Documentos
Filas
Numa
fila, os elementos so inseridos e retirados de acordo com o princpio o primeiro que entra o primeiro que sai
FIFO
Filas
Um
que a pessoa que est no incio servida primeiro, e as pessoas que chegam entram no fim da fila
Filas Utilizao
Filas
de impresso
Filas Utilizao
Sistemas
operacionais utilizam filas para regular a ordem na qual as tarefas devem receber processamento, e recursos devem ser alocados a processos
Filas Insero
A insero de um elemento em uma fila (enqueue)
16
10
Filas Remoo
A remoo de um elemento em uma fila (dequeue)
4 4
4 16
4 10
Filas Implementao
Podemos
Fila - Implementao
Inicialmente
os ndices de primeiro elemento e prxima posio livre possuem valor 0 (fila vazia)
3 4
...
N-1
Fila - Implementao
Ao
inserirmos um elemento no final da fila, o ndice da prxima posio livre deslocado de uma posio
...
0 1
4 5
6 7
...
N-1
Fila - Implementao
Ao
removermos um elemento do incio da fila, o ndice para o primeiro elemento deslocado de uma posio
...
0 1
4 5
6 7
...
N-1
Fila Implementao
Se
chamarmos o ndice do primeiro elemento de head e chamarmos o ndice da prxima posio livre de tail
Sempre
Fila Implementao
Como
Para
o arranjo circular
= (tail + 1) MOD N head = (head + 1) MOD N N o tamanho do arranjo MOD a operao de resto da diviso
Fila Implementao
Mas
0 1
5 6
...
N-1
Fila Implementao
Para
evitar este problema, uma posio necessariamente ter que ficar sempre livre
Na
0 1
5 6
...
N-1
Fila Implementao
Para
fila
(N
(8 + 3 4) MOD 8 = 7
0 1
5 6
O TAD Queue
Mtodo enqueue Especificao Insere um elemento no final da fila Entrada: o elemento a ser inserido. Sada: nenhuma Remove o elemento do comeo da fila Entrada: nenhuma. Sada: o elemento removido Retorna o elemento do comeo da pilha Entrada: nenhuma. Sada: o elemento que est no comeo da pilha Exceo Se a fila estiver cheia Se a fila estiver vazia Se a fila estiver vazia
dequeue
front
O TAD Queue
Mtodo getSize
Especificao Entrada: nenhuma. Sada: o nmero de elementos da fila Entrada: nenhuma. Sada: true se a fila estiver vazia. Caso contrrio, false.
Exceo No
isEmpty
No
O TAD Queue
Supondo
Que
O TAD Queue
Mtodo enqueue(5) enqueue(3) dequeue() enqueue(7) dequeue() front() dequeue() dequeue() front() isEmpty() enqueue(9) Sada fila
O TAD Queue
Mtodo enqueue(5) enqueue(3) enqueue(10) getSize() enqueue(7) enqueue(8) Queue overflow 4 Sada Pilha {9,5} {9,5,3} {9,5,3,10} {9,5,3,10} {9,5,3,10,7} {9,5,3,10,7}
Exerccio Individual
Implemente
Para
Cdigo Queue
class Queue { //Constri a fila com uma capacidade. A capacidade equivale ao //nmero mximo de elementos da pilha. Queue(int capacity) { }; void enqueue(int element) { }; int dequeue() { } int front() { } int getSize() { } bool isEmpty() { } string toString() { } private int capacity; private int head; private int tail; };