Fila
Fila
Fila
Departamento de Computação
Autor
792238
Ciência da Computação
typedef struct {
int elementos[MAX];
int ultimo;
} Fila;
TRECHO 2: FILA_TAD.C
/*
NOME: PIETRO MINGHINI MORALLES
RA: 792238
DISCIPLINA: Algoritmos e Estruturas de Dados 1
EXERCICIO: F3 - TAD Fila: implementação, teste e aplicação.
DESCRIÇÃO: IMPLEMENTAÇÃO DAS FUNÇÕES TAD FILA
*/
#include "Fila_TAD.h"
TRECHO 3: MAIN.C
/*
NOME: PIETRO MINGHINI MORALLES
RA: 792238
DISCIPLINA: Algoritmos e Estruturas de Dados 1
EXERCICIO: F3 - TAD Fila: implementação, teste e aplicação.
DESCRIÇÃO: ATIVIDADE PARA IMPLEMENTAR E TESTAR O TAD FILA SEM
REALOCAÇÃO DOS ELEMENTOS
*/
#include "Fila_TAD.h"
#include <stdio.h>
int main() {
int op = 10, valor;
bool resultado;
Fila fila1;
Cria(&fila1);
if(Vazia(f)){
printf("Fila vazia\n");
}
else{
while(!Vazia(f)) {
if(qtdVz == 0) {
Retira(f, &x, &resultado);
printf("O primeiro elemento eh: %d\n", x);
Insere(&aux, x, &resultado);
qtdVz++;
}
else{
Retira(f, &x, &resultado);
Insere(&aux, x, &resultado);
}
}
while (!Vazia(&aux)){
Retira(&aux, &x, &resultado);
Insere(f, x, &resultado);
}
}
};
if(Vazia(f)){
printf("Fila vazia\n");
}
else{
while (!Vazia(f)){
Retira(f, &x, &resultado);
Insere(&aux, x, &resultado);
}
printf("Inicio -----> ");
while (!Vazia(&aux)){
Retira(&aux, &x, &resultado);
printf("%d ", x);
Insere(f, x, &resultado);
}
printf("\n");
}
}
3 Aplicação de Fila
Uma aplicação de Fila que eu pensei, poderia ser a fila de um jogo em que o servidor
possuí limite de pessoas. Neste jogo, há um sistema de jogadores VIP e jogadores não
VIP, em que, a vantagem de se ser um jogador VIP estaria na fila de espera para jogar,
uma vez que jogadores VIP’s teriam prioridades para entrar no jogo, estando assim
sempre a frente na fila de jogadores, comparado aos não VIP’s. Entretanto, para não ficar
muito injusto, a cada 5 jogadores VIP’s que entram no jogo, um jogador não VIP entra
no jogo também, para não deixar apenas jogadores VIP no jogo.
A ideia seria uma fila para jogadores VIP, uma fila para jogadores não VIP e uma
ultima fiz que consiste da união das duas filas, sendo a VIP primeiro e depois a não VIP.
Cada jogador VIP que entra na fila, é adicionado na fila VIP e depois ocorre a junção,
novamente, das duas filas. O mesmo se aplica para os não VIP.
Assim, a cada 5 jogadores VIP, o próximo jogador a entrar seria o primeiro jogador
não VIP. A junção das duas é utilizada para informar a posição geral do jogador na fila
de jogadores. Utilizando as operações primitivas, é possível criar tais operações, de modo
a utilizar o “controle da TV”.