Informática, perguntado por brunito98, 10 meses atrás

alguem pode me dar uma ajuda, eu nao sei o que deu de errado no codigo, na parte de remover

#include
#include

// Lista Duplamente Encadeada
typedef struct no
{
int codigo;
char nome[20];
struct no*next, *back;
}no;

struct no *corrente, *auxiliar,*inicio, *fim;

void enterdata()
{
printf("Informe o Codigo do Registro \n");
scanf("%d", &corrente->codigo);
printf("Informe o nome...\n");
scanf("%s",&corrente->nome);

}

int insere (no **lista)
{
if(inicio == NULL)
{
corrente=(no*)malloc (sizeof(no));
auxiliar = corrente;
inicio = corrente;
corrente->next = NULL;
corrente->back = NULL;
enterdata();

}else {
corrente=(no*) malloc(sizeof(no));
auxiliar->next = corrente;
corrente->back = auxiliar;
auxiliar = corrente;
corrente->next=NULL;
fim = corrente;
enterdata();
}
}

int exibir (no **lista)
{
if(inicio == NULL)
{
printf("Lista vazia.. \n");
system("pause");
}else{
auxiliar = fim;
while(auxiliar != NULL)
{
printf("%d, Codigo \n",auxiliar->codigo);
printf("%s, Nome \n",auxiliar->nome);
auxiliar=auxiliar->back;
system("pause");
}

}
}

int pesquisa(no **lista)
{
int achou=0;
int xcod;
if(inicio == NULL)
{
printf("Lista Vazia....\n");
system("pause");
}else {
auxiliar =fim;
printf("Informe o Codigo a ser Consultado...\n");
scanf("%d", &xcod);
while(auxiliar != NULL)
{
if(auxiliar->codigo == xcod)
{
printf("Registro foi encontrado...\n");
achou =1;
system("pause");
break;
}else{

auxiliar = auxiliar->back;
}
}
if (achou == 0)
{
printf("Registro nao foi encontrado..\n");
system("pause");
}
}
}



//DUPLAMENTE - REMOVER

void remover( )
{
corrente= pesquisa();
if(corrente-> back == NULL)
{
fim = corrente-> next;
free(corrente);
fim-> back = NULL;
}

else
{
if(corrente->next == NULL)
{
inicio = auxiliar-> back;
free(corrente);
inicio-> next = NULL;
}

else
{
inicio = corrente-> back;
inicio-> next = corrente-> next;
fim = inicio-> next;
fim-> back = inicio;
free(corrente);
}

}

}

int main ()
{
int op;

corrente= NULL;
auxiliar =NULL;
inicio = NULL;
do {
system("cls");
printf("[1] Insere elemento na Lista...\n");
printf("[2] Exibir os elementos da Lista..\n");
printf("[3] Pesquisa o elemento da Lista...\n");
printf("[4] Remover o elemento da Lista..\n");
printf("[5] Sair...\n");
printf("Informe a opcao...\n");
scanf("%d",&op);

switch (op)
{
case 1: insere(&inicio);
break;
case 2: exibir(&inicio);
break;
case 3: pesquisa(&inicio);
break;
case 4: remover(&inicio);
break;
default : printf("OPcao Invalida tente novamente..\n");
break;
}
}while (op != 5);
}





Soluções para a tarefa

Respondido por gbrito2506
0

PERGUNTA:

que linguagem de programação é essa


brunito98: é em C
gbrito2506:
Perguntas interessantes