Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
/* * Vandcarlos Mouzinho Sandes Junior * vandcarlosjunior@gmail.com * +55 12 99611-4871 */ #include <stdio.h> void inserir(int valor, int *fim, int fila[], int *totalElementos); void remover(int *inicio, int fila[], int *totalElementos); void consulta(int fila[], int inicio, int totalElementos); /* * Meninas diferente da pilha estática eu fiz passagens por referência, pois difente de lá que apenas o fim era * alterado na função main no caso dessa fila que eu implementei, duas variáveis são alteradas além do vetor com as chaves * no caso de inserir temos a fim e o totalElementos e no caso de remover temos inicio e totalElementos * como podem perceber na função consultar eu passei apenas os parâmetros (valores) pois eles não podem mudar na main * servem apenas como um controle para percorrer toda a lista */ int main() { int fila[10], inicio, fim, totalElementos; inicio = 0; fim = 0; totalElementos = 0; } void inserir(int valor, int *fim, int fila[], int *totalElementos) { if(*totalElementos == 10) { printf("A fila ja esta cheia, impossivel adicionar novo elemento! \n"); } else { fila[*fim] = valor; *fim = *fim + 1; if(*fim == 10) { *fim = 0;//caso tenha chegado no final da lista volta para o começo } *totalElementos = *totalElementos +1; } return; } void remover(int *inicio, int fila[], int *totalElementos) { if(*totalElementos == 0) { printf("A fila ja esta vazia, impossivel remover!! \n"); } else { *totalElementos = *totalElementos - 1; *inicio = *inicio + 1; if(*inicio == 10) { *inicio = 0;//caso tenha chegado no final da fila volta para o começo } } return; } void consulta(int fila[], int inicio, int totalElementos) { /* * Escolhi fazer o controle da consulta através da variavél totalElementos pois só assim posso saber * se a fila está vazia ou cheia, pois usando inicio e fim, em ambas as situações, vazia e cheia, elas teriam * o mesmo valor */ while(totalElementos != 0) { printf("%d ", fila[inicio]); inicio = inicio + 1; if(inicio == 10) { inicio = 0; } totalElementos = totalElementos -1; } printf("\n"); return; }
Compartilhar