Fila dinâmica em C
Publicado por Alexandre (azk4n) (última atualização em 27/02/2016)
[ Hits: 3.720 ]
Homepage: null
Implementação de uma simples fila dinâmica em C.
Código em en_US.
azk4n
/* a simple dynamic queue in C functions: - insert and remove element (no) - show the queue - free queue writer: Alexandre (azk4n) */ #include <stdio.h> #include <stdlib.h> typedef struct NO{ int data; struct NO *nxt; }no; int size; no *tmp; int empty(no *queue){ if(queue->nxt == NULL) return 1; else return 0; } void showQueue(no *queue){ if(empty(queue)){ printf("\nempty queue\n\n"); }else{ tmp = queue->nxt; printf("\n"); while(tmp != NULL){ printf("%d ", tmp->data); tmp = tmp->nxt; }printf("\nsize of queue: %d\n\n", size); } } void enqueue(no *queue){ no *new = (no*) malloc(sizeof(no)); new->nxt = NULL; printf("\ntake the new node: \n"); scanf("%d", &new->data); printf("\n"); if(empty(queue)){ queue->nxt = new; size++; }else{ tmp = queue->nxt; while(tmp->nxt != NULL){ tmp = tmp->nxt; } tmp->nxt = new; size++; } } no *dequeue(no *queue){ if(empty(queue)){ printf("\nempty queue\n\n"); return NULL; }else{ tmp = queue->nxt; queue->nxt = tmp->nxt; size--; return tmp; } } void freeQueue(no *queue){ if(empty(queue)){ printf("\nempty queue\n\n"); }else{ no *nxtNode, *actualNode; actualNode = queue->nxt; while(actualNode != NULL){ nxtNode = actualNode->nxt; free(actualNode); actualNode = nxtNode; } printf("\nqueue clear\n\n"); } } int main(){ no *queue = (no*) malloc(sizeof(no)); if(!queue){ printf("no memory"); exit(1); }else{ queue->nxt = NULL; size = 0; int opt; do{ printf("0 -> quit\n"); printf("1 -> show queue\n"); printf("2 -> add node in queue\n"); printf("3 -> remove node in queue\n"); printf("4 -> free queue\n"); printf("opt: "); scanf("%d", &opt); switch(opt){ case 1: showQueue(queue); break; case 2: enqueue(queue); break; case 3: tmp = dequeue(queue); if(tmp != NULL) printf("\nelement removed: %d\n\n", tmp->data); break; case 4: freeQueue(queue); queue->nxt = NULL; size = 0; break; default: if(opt != 0) printf("\ninsert valid option!\n\n"); } }while(opt != 0); } return 1; }
Retornar o montante de um capital aplicado a juros compostos
SIMULADOR DE DADOS DE RPG VAMPIRO A MÁSCARA - Corrigido
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Dificuldade para renderizar vídeo no kdenlive (6)
xubuntu sem sons de eventos (3)
Erro ao iniciar serviço samba4 como novo dc em um ambiente com ad [RES... (9)