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
0
PERGUNTA:
que linguagem de programação é essa
brunito98:
é em C
Perguntas interessantes
Matemática,
7 meses atrás
Matemática,
7 meses atrás
Ed. Técnica,
7 meses atrás
Química,
10 meses atrás
Física,
10 meses atrás
Matemática,
1 ano atrás
Matemática,
1 ano atrás