Fila em C

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

[ Hits: 6.431 ]

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

Trabalhando com Matrizes

Jogo Snake (com gráficos)

Derrubando Win9x/Win2k !

Cálculo de logaritmo de um número por um terceiro método em C

AIMG-mostrar imagem fraquimentada em pontos aleatórios


  

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