A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Filas - Definição Uma fila possui o comportamento: O primeiro que chega é o primeiro que sai. –O único elemento que pode ser removido da fila é o primeiro.

Apresentações semelhantes


Apresentação em tema: "Filas - Definição Uma fila possui o comportamento: O primeiro que chega é o primeiro que sai. –O único elemento que pode ser removido da fila é o primeiro."— Transcrição da apresentação:

1 Filas - Definição Uma fila possui o comportamento: O primeiro que chega é o primeiro que sai. –O único elemento que pode ser removido da fila é o primeiro que foi inserido, dentre os presentes na fila (que está no início da fila) –Sem considerar aspectos de implementação o comportamento da fila pode ser especificada por 3 operações: insereNaFila: Insere um elemento na fila removeDaFila: remove o primeiro elemento que foi inserido na pilha filaVazia: operação lógica: retorna verdadeiro se nã há nenhum elemento na fila e falso caso contrário.

2 Filas – Fila Vazia A operação filaVazia é necessária porque a operação removeDaFila só pode ser executada se a pilha não estiver vazia. Note que a única restrição de comportamento é que o único elemento que pode ser removido é o primeiro que foi inserido.

3 Filas - Implementação Implementação de uma fila: 1.Definir o tipo básico 2.Identificar possíveis limitações da forma de implementação 3.Definir uma forma de sabermos sempre quem foi o primeiro elemento inserido 4.Implementar as funções insereNaFila, removeDaFila, filaVazia 5.Implementar possíveis operações auxiliares

4 Filas – Implementação com Vetores Exemplo de implementação em C usando vetores –Tipo básico: inteiro –O tamanho de um vetor é estaticamente definido: a fila pode encher –O primeiro elemento da fila será sempre lembrado por uma variável auxiliar que guardará seu índice (inicio) –A variável início não é suficiente para manter a ordem da fila pois não saberíamos onde inserir um novo elemento (fim da fila): Usaremos uma outra variável (fim) para lembrarmos onde é o fim da fila –Quando inserimos um elemento, o fim da fila deve ser atualizado –Quando removemos um elemento o inicio da fila deve ser atualizado

5 Filas – Implementação com Vetores #define true 1 #define false 0 #define TamMaximoFila 100 #define CodigoFilaVazia –99999 typedef struct { int fila[TamMaximoFila]; int inicio,fim; } TadFila ; Especificação das operações: inicializaFila(TadFila *q); filaCheia(TadFila q); insereNaFila(TadFila *q, int elem); filaVazia(TadFila q); removeDaFila(TadFila *q, int *elem); //o elemento removido é retornado pelo parâmetro elem. A funcao retorna true em caso de sucesso ou false caso contrário.

6 Filas – Implementação Implementação 1 –Inicialização da fila: Inicio = 0 Fim = -1 –Condição de fila vazia: Fim

7 Filas - Implementação Exemplo: TamMaximoFila = 3 InícioFimfila 012 InicializaFila0--- Insere Insere Insere Remove Insere 40 Fila Cheia! -2030

8 Filas - Implementação Limitação da Fila em arranjo: Embora a posição 0 esteja vaga, a solução acusa fila cheia. Uma solução viável para este problema é a implementação de fila com arranjos circulares

9 Sucessor (i) = (i+1) mod n Exemplo: Para n=3 temos Sucessor(0) = 1 Sucessor(1) = 2 Sucessor(2) = 0 Filas com Arranjo circular Um arranjo circular pode ser implementado por meio de uma operação chamada sucessor O sucessor do ultimo elemento do arranjo é o primeiro elemento Para um arranjo de índices i que vão de 0 a n-1 210

10 Filas com Arranjo Circular Implementação 2 –Inicialização da fila: Inicio = 0 Fim = 0 –Condição de fila vazia: Fim = Inicio –Condição de fila cheia: sucessor(Fim)= Inicio –Insere: Se a fila não estiver cheia –Insere na posição Fim – Fim = sucessor(Fim) –Remove: Se a fila não estiver vazia –Remove da posição Inicio –Inicio=sucessor(inicio)

11 Filas com Arranjo Circular Exemplo: TamMaximoFila = 3 InícioFimfila 012 InicializaFila00--- Insere Insere Insere 30FilaCheia1020- Remove Insere Insere 40Fila cheia

12 Filas - Exercício Construa uma programa que simule uma fila de atendimento de um banco. A cada unidade de tempo chegam ao banco um número de pessoas entre 0 e 10 pessoas


Carregar ppt "Filas - Definição Uma fila possui o comportamento: O primeiro que chega é o primeiro que sai. –O único elemento que pode ser removido da fila é o primeiro."

Apresentações semelhantes


Anúncios Google