Teste
#include
#include
#include
#include
void inicializa(); void menu(); void incluir(); void alterar(); void excluifila(); void excluipilha(); void excluir(); void listaremordem(); void listaremordeminversa(); void finaliza();
struct xpto
{
int codpeca; char descricaopeca[20]; struct xpto *ant; struct xpto *prox;
};
typedef struct xpto lista; lista *inicio=NULL; lista *atual=NULL; lista *anterior=NULL; lista *fim=NULL; lista *inverso=NULL;
int main (void)
{
char opcao='0'; inicializa(); while (opcao !='8'){ menu(); opcao=getchar(); fflush(stdin); switch(opcao){ case '1':incluir(); break; case '2':alterar(); break; case '3':excluifila(); break; case '4':excluipilha(); break; case '5':excluir(); break; case '6':listaremordem(); getchar(); break; case '7':listaremordeminversa(); getchar(); break; case '8':printf("\nFIM DE EXECUCAO!"); finaliza(); getchar(); exit(1); default:break;
}
}
}
void inicializa(){ inicio =(lista*) malloc (sizeof (lista)); if (!inicio){ printf("\nNao existe espaco na memoria!"); exit(1); } inicio->ant = NULL; inicio->prox = NULL; atual = inicio; atual->ant = inicio;
}
void incluir()
{
lista *novo=NULL; novo = (lista*) malloc (sizeof (lista)); if (!novo){ printf("\nNao existe espaco na memoria!"); exit(1); } printf("\nDigite o codigo da peca: "); scanf("%d",&novo->codpeca); fflush(stdin); printf("\nDigite a descricao da peca: "); gets(novo->descricaopeca); novo->ant = atual; novo->prox = NULL; atual->prox = novo; atual = novo;
}
void alterar()
{
int codbusca,encontrou=0; printf("\n\nDigite o codigo da peca para alterar a descricao: "); scanf("%d",&codbusca); if (inicio->prox==NULL) printf("\nLista vazia! Busca para alteracao nao pode ser processada!\n"); else{ for (atual=inicio->prox; atual!=NULL; atual=atual->prox){ if (codbusca==atual->codpeca){ encontrou=1; fflush(stdin); printf("\n\nDigite a