Fila em C
Publicado por Perfil removido (última atualização em 05/07/2011)
[ Hits: 6.332 ]
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*/
Pilhas Encadeadas Detalhadamente
Algoritmo de ordenação Quick Sort
Nenhum comentário foi encontrado.
Mamãe, quero descompactar e também compactar arquivos no terminal!
Deixando o Gnome bonitão em qualquer distribuição
Como ativar o módulo de cancelamento de ruído no Pipewire
Como escolher o melhor escalonador de CPU para melhorar o desempenho da máquina
Lançadores de aplicativos para o KDE Plasma5/6
[Resolvido] Ruído nos alto-falantes no Linux
Fazendo 100% no DOOM clássico sem tutorial
DSDA DOOM no Linux Mint 21.3 Virginia
Papagaiando (enfeitando) o KDE com efeitos do KWiN Burn My Windows
Por que o meu linux é lento? (0)
Problemas para configurar o proxmox (8)
Steam não esta rodando no Linu Mint. (13)