Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define MAX 100
- struct Fila{
- int vetor[MAX];
- int inicio;
- int fim;
- int tamanho;
- };
- void iniciaFila(struct Fila *fila){
- fila->tamanho = 0;
- fila->fim = -1;
- fila->inicio = 0;
- }
- int vaziaFila(struct Fila *fila){
- if(fila->tamanho == 0){
- return 1;
- }else{
- return 0;
- }
- }
- int tamanhoFila(struct Fila *fila){
- return fila->tamanho;
- }
- int cheiaFila(struct Fila *fila){
- if(fila->tamanho == MAX){
- return 1;
- }else{
- return 0;
- }
- }
- int primeiroFila(struct Fila *fila, int *dado){
- if(vaziaFila(fila)) return 0;
- *dado = fila->vetor[ fila->inicio ];
- return 1;
- }
- int insereFila(struct Fila *fila, int valor){
- if(cheiaFila(fila)) return 0;
- fila->fim = (fila->fim + 1) % MAX;
- fila->vetor[fila->fim] = valor;
- fila->tamanho++;
- return 1;
- }
- int removeFila(struct Fila *fila, int *dado){
- if(vaziaFila(fila)) return 0;
- *dado = fila->vetor[fila->inicio];
- fila->inicio = (fila->inicio + 1) % MAX;
- fila->tamanho--;
- return 1;
- }
- int mostraFila(struct Fila *fila){
- if(vaziaFila(fila)){
- printf("Fila vazia.\n");
- return 0;
- }
- printf("Tamanho da fila: %d elemento(s)\n", fila->tamanho);
- printf("-------------------------------------\n");
- int indice, count;
- for(count = fila->inicio, indice = 1; count != fila->fim + 1; count = (count + 1)%MAX, indice++){
- printf("\tPOSICAO: %d\n", indice);
- printf("\tVALOR: %d\n", fila->vetor[count]);
- printf("\n");
- }
- return 1;
- }
- int procuraFila(struct Fila *fila, int valor){
- //Retorna -1 se o elemento não for encontrado
- if(vaziaFila(fila)) return -1;
- int count, posicao;
- for(count = fila->inicio, posicao = 1; count != fila->fim + 1; count = (count + 1) % MAX, posicao++){
- if(fila->vetor[count] == valor){
- return posicao;
- }
- }
- return -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment