Exercico 4
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Paciente{
int codigo;
char nome[20];
int indade;
char testeCovid[20];
struct Paciente *seguinte;
}Paciente;
Paciente *criarPaciente(int v, char nome[30], int idade, char testeCovid[10]){
Paciente* novo = (Paciente*) malloc(sizeof(Paciente));
novo->codigo = v;
strcpy(novo->nome, nome);
novo->indade = idade;
strcpy(novo->testeCovid, testeCovid);
novo->seguinte = NULL;
return novo;
}
Paciente* inserirNoFinal(Paciente* cabeca ,int v, char nome[30], int idade, char testeCovid[10]){
Paciente* novo = criarPaciente(v, nome, idade, testeCovid);
if(novo == NULL) return cebeca;
if(cabeca == NULL) return novo;
// percorer até o fim da lista
Paciente* aux = cabeca;
while(aux->seguinte != NULL){
aux = aux->seguinte;
}
aux->seguinte = novo;
return cabeca;
}
void imprimirPaciente(Paciente* cabeca){
while(cabeca != NULL){
printf("nome: %s\n", cabeca->nome);
printf("codigo: %d\n", cabeca->codigo);
printf("idade: %d\n", cabeca->idade);
printf("Teste Covid: %s\n\n", cabeca->testeCovid);
// Importante!!
cabeca = cabeca->seguinte;
}
}
bool busca(Paciente* cabeca, char nome[20]){
bool encontrado = false;
while(cabeca != NULL){
if( strcmp(cabeca->nome, nome) == 0 ){
printf("nome: %s\n", cabeca->nome);
printf("codigo: %d\n", cabeca->codigo);
printf("idade: %d\n", cabeca->idade);
printf("Teste Covid: %s\n\n", cabeca->testeCovid);
encontrado = true;
}
cabeca = cabeca->seguinte;
}
return encontrado;
}
Paciente* removerPaciente(Paciente* cabeca){
if(cabeca == NULL)return cabeca;
Paciente *aux = cabeca;
Paciente *anterior = NULL;
while( aux != NULL ){
anterior = aux;
aux = aux->seguinte;
free(anterior);
}
return cabeca;
}
int main()
{
Paciente* inicio = NULL; // IMPORTANTE
incio = inserirNoFinal(inicio, 123, "abc", "0", "pos");
incio = inserirNoFinal(inicio, 321, "cba", "1", "neg");
imprimirPaciente(inicio);
if( busca(inicio, "cba") == true ){
printf("encontrado");
} else {
printf("Não encontrado");
}
inicio = removerPaciente(inicio);
return 0;
}