Tecnologia em análise e Desenvolvimento de sistemas-fila.pdf
1. Tecnologia em Análise e
Desenvolvimento de Sistemas
Estruturas de dados I
ED1A2 - FILA
2. FILA
● Análogo a uma fila de banco
● Sempre o primeiro da fila é atendido
● Quando alguém chega vai para o final da fila
● FIFO (First In First Out), ou seja, o primeiro elemento que entra é o
primeiro a sair.
3. FILA
• As inserções são feitas sempre no FINAL
• As retiradas são feitas sempre do INÍCIO
4. FILA–OPERAÇÕES BÁSICAS
• Duas operações básicas:
– INSERIR (PUT/ENQUEUE): Operação utilizada para
inserir um novo elemento NO FINAL DA FILA.
– REMOVER (GET/DEQUEUE): Operação utilizada para
remover o elemento DO INÍCIO DA FILA.
5. Barbosa
e Silva
2010
FILA–APONTAMENTO
• Implementação NÃO SEQUENCIAL e
DINÂMICA, ou seja:
• Os elementos não estão necessariamente
ordenados na memória
• Não existe um limite máximo de tamanho
previamente definido como na implementação
através de arranjos!
5
6. Barbosa
e Silva
2010
FILA–APONTAMENTO
• Cada célula contém o VALOR propriamente dito e um apontador que
aponta para o próximo item da fila.
• Existe uma célula que aponta para o primeiro e outra para o último.
• Quando a fila está vazia, primeiro e último apontam para null.
6
8. FILA–INSERIR
• A operação INSERIR é dividida em 5 etapas:
– Criação de um novo nó para receber o valor inserido
– O novo elemento passa a apontar para null
– Verifica se a pilha está vazia
• primeiro e último elemento aponta para novo
– O último elemento passa a apontar para o novo elemento
– o último elemento passa a ser o novo
– Incrementa-se o tamanho da fila
14. FILA – REMOVER
• A operação REMOVER é dividida em 4 etapas:
– Verificar se a fila está vazia
– Verificar se contém apenas um elemento
– O primeiro elemento passa a ser o elemento
que era apontado pelo primeiro (seguinte)
– Decrementar o tamanho da pilha
14
15. • PASSO 1: Verificar se a pilha está vazia
• PASSO 2: Se não estiver vazia, verificar se
existe apenas um elemento. Nesse caso, o
apontador último passa a apontar para null
15
FILA – REMOVER
ultimo = null
16. • PASSO 3: Atualizar o ponteiro de primeiro (o
primeiro elemento passa a ser o elemento que
era apontado pelo primeiro (próximo))
01/11/2017 Filas (Implementação utilizando Ponteiros)
FILA – REMOVER
Cont = 4
20. FAÇA AS DEMAIS OPERAÇÕES COM FILA
• Verifica se a fila está vazia
• Verifica se a fila está cheia
• Exibe o elemento do início
• Exibe o elemento do fim
20
22. Exercício Sala
1) Crie uma estrutura de fila que faça apenas as operações de
ENQUEUE, DEQUEUE e EXIBIR elementos do tipo int. Utilize apenas
estruturas dinâmicas
2) Altere o exercício anterior de modo a realizar as demais operações.:
Verifica se a fila está vazia
Verifica se a fila está cheia
Exibe o elemento do início
Exibe o elemento do fim
23. Exercício (extra)
1. Crie uma estrutura que faça apenas as operações de inserir, remover e
exibir. Cada posição deve armazenar uma operação do tipo string
referenciando o movimento de um jogo de xadrez. Por exemplo Be5
(bispo se move para e5), Cf3 (cavalo se move para f3). A alocação deve ser
dinâmina.
2. Altere o exercício anterior de modo a realizar as demais operações.