Excluir um elemento da lista...

1. Excluir um elemento da lista...

jessica lais dos santos arauno
jessicais19

(usa Ubuntu)

Enviado em 09/11/2012 - 19:25h

Eis o código:

#include <stdio.h>
#include <stdlib.h>

struct cadastro{
char nome[20];
struct cadastro *anterior;
struct cadastro *proximo;
};

typedef struct cadastro lista;

//função do menu
menu(){
printf ("===========================================\n");
printf ("___________________________________________\n");
printf (" Menu\n");
printf ("___________________________________________\n");
printf("1 - para cadastrar nomes \n");
printf ("2 - listar nome da forma normal\n");
printf ("3 - listar ao contrario\n");
printf ("4 - procurar e excluir na forma normal\n");
printf("5 - sair\n");
printf ("===========================================\n");
}

//função cadastro
lista *cadastrar (lista *l){

lista *novo;
//armazena um elemento
novo=(lista*)malloc(sizeof(lista));

printf("Digite o nome: ");
scanf ("%s",&novo->nome);

o anterior é igual ao l
novo->anterior=l;

if (l!=NULL){
l->proximo=novo;
}

//O proximo elemento recebe nulo
novo->proximo=NULL;

l=novo;

printf ("\n");
return l;
}

//função mostrar elementos
lista *mostrar (lista *l){
printf ("nome\n");
while (l!=NULL){
printf ("%s\n",l->nome);
l=l->proximo;
}
}

lista *mostraContrario (lista *l){
printf ("nome\n");
while (l!=NULL){
printf ("%s\n",l->nome);
l=l->anterior;
}
}

//Função excluir que está com problemas
lista *excluir(lista *l){
lista *aux;

aux=(lista*)malloc(sizeof(lista));

char nome[20];

printf ("Digite o nome: ");
fflush (stdin);
scanf ("%c",&nome);

if (strcmp(l->nome,nome)==0){
aux=l->proximo;
free(l);
l=aux;
}
return l;
printf ("\n");
}

//Função main que aguarda os elementos inserido na função.
main (){

lista *l=NULL,*inicio,*aux;
char name[20];

system("color F0");

int opcao;

for (;;){
menu();
scanf ("%d",&opcao);
system("pause");
system("cls");

switch (opcao){
case 1:printf ("===========================================\n");
printf ("___________________________________________\n");
printf (" Cadastro de nome na forma normal\n");
printf ("___________________________________________\n");

if (l!=NULL){
l=cadastrar(l);
}

if (l==NULL){
l=cadastrar(l);
inicio=l;
}
printf ("===========================================\n");
system("pause");
system("cls");
break;

case 2:printf ("===========================================\n");
printf ("___________________________________________\n");
printf (" Listar na forma normal\n");
printf ("___________________________________________\n");

aux = inicio;
mostrar(aux);
printf ("===========================================\n");
system("pause");
system("cls");
break;

case 3:printf ("===========================================\n");
printf ("___________________________________________\n");
printf (" Lista ao contrario\n");
printf ("___________________________________________\n");
aux = l;
mostraContrario(aux);
printf ("===========================================\n");
system("pause");
system("cls");
break;

case 4:printf ("===========================================\n");
printf ("___________________________________________\n");
printf (" Excluir\n");
printf ("___________________________________________\n");
//printf ("Digite o nome: ");
///fflush(stdin);
//scanf ("%c",&name);

l=excluir(l);

printf ("\n");
printf ("===========================================\n");
system("pause");
system("cls");
fflush(stdin);
break;

case 5:printf ("===========================================\n");
printf ("___________________________________________\n");
printf (" Sair\n");
printf ("___________________________________________\n");
printf ("===========================================\n");
system("pause");
exit(0);
break;

}
}}




  


2. Re: Excluir um elemento da lista...

Paulo
paulo1205

(usa Ubuntu)

Enviado em 10/11/2012 - 11:46h

Sugestões:

1) Coloque seu código entre as tags [code] e [/code], para deixar o código num formato que facilite sua leitura (você pode editar a mensagem já postada e fazer isso agora), ou então use um site especializado em postagem de código, como o codepad.org ou pastebin.com.

2) Diga exatamente qual o seu problema e que ajuda você deseja.


3. Re: Excluir um elemento da lista...

André
andrezc

(usa Debian)

Enviado em 10/11/2012 - 16:21h

Jogo de adivinhação?


4. Re: Excluir um elemento da lista...

Paulo
paulo1205

(usa Ubuntu)

Enviado em 10/11/2012 - 17:04h

Assim, solto, soa como se ela quisesse que fizessem o exercício por ela.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts