0
How to put the delete option in the chained list by looking for the person’s name.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
struct stNo {
int info;
char nome[50];
struct stNo *prox;
};
struct stNo *cria_no() {
struct stNo *p;
if ((p = (struct stNo *) malloc(sizeof(struct stNo))) == NULL)
return NULL;
else {
p->prox = NULL;
return p;
}
}
void insereLista(struct stNo **list){
struct stNo *p,*q;
int n, idade;
char name[50], endereco[100], sexo, cidade[80], celular[11], email[40];
fflush(stdin);
printf("\nDigite o valor do nó:");
scanf("%i",&n);
fflush(stdin);
printf("\nDigite o nome:");
gets(name);
fflush(stdin);
//printf("\nDigite o seu sexo [F][M]:");
//scanf("%i",&idade);
//fflush(stdin);
//printf("\nDigite sua idade:");
//scanf("%c",&sexo);
//fflush(stdin);
//printf("\nDigite seu endereço:");
//scanf(endereco);
//fflush(stdin);
//printf("\nDigite sua cidade:");
//gets(cidade);
//fflush(stdin);
//printf("\nDigite seu celular:");
//scanf(celular);
//fflush(stdin);
//printf("\nDigite seu e-mail:");
//gets(email);
fflush(stdin);
if(*list==NULL){ //lista vazia
p = cria_no();
*list = p;
p->prox = NULL;
p->info = n;
strcpy(p->nome,name);
}
else{
p=*list;
while(p->prox!=NULL)
p=p->prox;// posiciona no final da lista
q = cria_no();
p->prox = q;
q->prox = NULL;
q->info = n;
strcpy(q->nome,name);
};
};
void mostraLista(struct stNo **list){
struct stNo *p;
if(*list!=NULL){
p=*list;
while(p->prox!=NULL){
printf(" %d->",p->info);
p = p->prox;
};
printf(" %d->",p->info);
}
else printf("\nLista Vazia");
};
void visualizarLista(struct stNo **list){
struct stNo *p;
int n;
char name[100];
fflush(stdin);
printf("\nDigite o nome:");
gets(name);
fflush(stdin);
if (*list!=NULL) {
p = *list;
while (p->prox!=NULL && strcmp(p->nome, name) != 0) {
p = p->prox;
};
if(strcmp(p->nome, name) == 0){
printf("\nCódigo: %d",p->info);
printf("\nNome: %s",p->nome);
};
}
else printf("\nLista Vazia");
};
main(){
setlocale(LC_ALL,"Portuguese");
struct stNo *lista;
int menu;
lista = NULL; // inicializando a lista vazia
do{
system("cls");
printf("\n");
mostraLista(&lista);
printf("\n\n");
printf("[1-Inserir] ");
printf("[2-Visualizar] ");
printf("[3-Sair] ");
printf("Opção:");
scanf("%i",&menu);
switch(menu){
case 1 : insereLista(&lista);
break;
case 2 : visualizarLista(&lista);
break;
case 3 : printf("\nSaindo...");
break;
default: printf("\nCódigo Inválido");
}
printf("\n");system("pause");
}while(menu!=3);
}