Clique no botão BACK do seu navegador para voltar à página anterior /* Fila dinâmica em linguagem C */ /* Autor: Alexandro Augusto Parra Anselmo */ #include"stdio.h" #include"stdlib.h" #include"conio.h" #include"string.h" #include"alloc.h" struct item{ char nome[15]; struct item *prox; }; struct item *inicio=NULL, *fim=NULL; void inserir(void){ struct item *novo_item; clrscr(); novo_item=(struct item*)malloc(sizeof(struct item)); printf("Entre com o nome a inserir"); scanf("%s",novo_item->nome); novo_item->prox=NULL; if(inicio==NULL) inicio=fim=novo_item; else{ fim->prox=novo_item; fim=novo_item; } } /*inseri*/ /*----------------remover-------------*/ void remover(void){ struct item *aux; clrscr(); if(inicio==NULL){ printf("a fila esta vazia"); getch();} else { if(inicio==fim){ aux=inicio; inicio=fim=NULL; printf("\n elemento e %s",aux->nome); free(aux); } else { aux=inicio; inicio=inicio->prox; printf("\n elemento e %s",aux->nome); free(aux); } } } /*------------listar-----------------*/ void listar(void){ struct item *aux; clrscr(); if(inicio==NULL) { printf("a fila esta vazia"); getch(); } else { for(aux=inicio;aux;aux=aux->prox) printf(" %s - ",aux->nome); getch(); } } /*------------fim-------------*/ void Fim(void){ struct item *aux,*aux1; for(aux=inicio;aux;) { aux1=aux; aux=aux->prox; free(aux1); } } void menu(void){ char resposta; clrscr(); printf("\n 1 - inserir"); printf("\n 2 - remover"); printf("\n 3 - listar"); printf("\n 4 - fim"); printf("\n resposta"); resposta=getch(); switch(resposta) { case '1' : inserir(); menu(); break; case '2' : remover(); menu(); break; case '3' : listar(); menu(); break; case '4' : Fim(); break; default : printf("Op‡Æo invalida"); clrscr(); menu(); } } void main(void){ clrscr(); menu(); }