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;
}