Fila em C
Publicado por Perfil removido (última atualização em 05/07/2011)
[ Hits: 6.483 ]
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*/
Derrubando SyGate Profissional Firewall !
S. MarioBros - Editor de fase 0.1
Nenhum comentário foi encontrado.
tux-gpt - Assistente de IA para o Terminal
Instalação e configuração do Chrony
Programa IRPF - Guia de Instalação e Resolução de alguns Problemas
O Que Fazer Após Instalar Ubuntu 25.04
O Que Fazer Após Instalar Fedora 42
Debian 12 -- Errata - Correções de segurança
Instalando o Pi-Hole versão v5.18.4 depois do lançamento da versão v6.0
Alguém poderia me ajudar a escolher peças pra montar um desktop? (22)
Pra quem contribui com artigos e dicas (2)
Copiar Layout do Teclado para aplicar em outra Distribuição (2)