Fila em C
Publicado por Perfil removido (última atualização em 05/07/2011)
[ Hits: 6.454 ]
Fila alocada dinamicamente, em que o usuário tem a opção de inserir, remover ou mostrar os valores.
#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*/
Jogo Super Mario Bros 3 (com gráficos)
Derrubando SyGate Profissional Firewall !
Jogo da Velha com IA invencivel
Nenhum comentário foi encontrado.
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Adapador Wi-Fi para de funcionar depois de alguns minutos no Ubuntu (1)
Compartilhando uma ideia sobre computação quantica (9)
Preciso atribuir um terceiro IP em uma placa de rede eth0. (7)