Fila em C

Publicado por Perfil removido (última atualização em 05/07/2011)

[ Hits: 6.399 ]

Download 5045.fila.c




Fila alocada dinamicamente, em que o usuário tem a opção de inserir, remover ou mostrar os valores.

  



Esconder código-fonte

#include<stdlib.h>
#include<stdio.h>

typedef struct campo {
   int valor;
   struct campo *prox;
   } *ptrCampo;

void iniciaFila(ptrCampo *l) {
*l = NULL;
}   
/*=============inserção dos valores===================*/   
void insere(ptrCampo *l, int numero) {
ptrCampo n = (ptrCampo)malloc(sizeof(struct campo));
(*n).valor = numero;

if(*l) {
(*n).prox = (**l).prox;
(**l).prox = n;
}
else
   (*n).prox = n;
*l = n;
}   
/*=================retirada dos valores===============*/
void retira(ptrCampo *l) {
ptrCampo aux;

if(*l == (**l).prox) {
   aux = *l;
   free(aux);
   *l = NULL;
   }
   else {
      aux = (**l).prox;
      (**l).prox = (*aux).prox;
      free(aux);
      }
}
/*==============impressão dos valores=====================*/
void imprime(struct campo l) {
ptrCampo aux;
aux = l.prox;

printf("Fila: [");
printf("%d", (*aux).valor);

while((*aux).prox != l.prox) {
   aux = (*aux).prox;
   printf("%5d", (*aux).valor);
   }
printf("]\n");
}
/*====================================================*/
main() {
ptrCampo f;
int opcao;
iniciaFila(&f);

printf("1: Inserir\t2: Remover\t3: Mostrar\t0: Sair\nOpção: ");
scanf("%d", &opcao);

while(opcao) {
   switch(opcao) {
      case 1: {
         int s;
         printf("Valor: ");
         scanf("%d", &s);
         insere(&f, s);
         break;
      }
      case 2:
         if(f)
            retira(&f);
         else
            printf("Fila vazia!\n");
         break;
      case 3: 
         if(f)
            imprime(*f);
         else
            printf("Fila vazia!\n");
         break;
      default:
         printf("Opção inválida!\n");
      }
printf("Opção: ");
scanf("%d", &opcao);
}
}
/*gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3*/

Scripts recomendados

asdfa

Gerando String Dinamica em C

Agenda feita em C usando árvore binária

Estrutura de dados: Lista dinâmica duplamente encadeada

Lista Simplesmente Encadeada


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts