Exercico 5

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

typedef struct NoCovidCV{
    char ilha[20];
    int totalCovid;
    struct NoCovidCV *esq;
    struct NoCovidCV *dir;
}NoCovidCV;

NoCovidCV *criarNo(char ilha[20], int totalCovid){
    NoCovidCV* novo = (NoCovidCV*)malloc(sizeof(NoCovidCV));
    // inicialização
    novo->totalCovid = totalCovid;
    strcpy(novo->ilha, ilha);
    // rega
    novo->esq = NULL;
    novo->dir = NULL;
    // novo->esq = novo->dir = NULL;
    return novo;
}   

void inserirCovid(NoCovidCV* *arvore, char ilha[20], int totalCovid){
    if(*arvore == NULL){

        *arvore = criarNo(ilha, totalCovid);

    } else if( strcmp(ilha, (*arvore)->ilha ) < 0 ){

        inserirCovid( &(*arvore)->esq ,ilha,totalCovid);

    } else if( strcmp(ilha, (*arvore)->ilha) > 0){

        inserirCovid( &(*arvore)->dir, ilha, totalCovid);

    } else {

        printf("Ilha já existe!\n");

    }
}

void InOrdem(NoCovidCV* arvore){
    if(arvore == NULL) return;

    InOrdem(arvore->esq);
    /// Imprimir dados

    printf("Ilha: %s\n", arvore->ilha);
    printf("Total Covid: %d\n\n", arvore->totalCovid);

    /// Imprimir dados
    InOrdem(arvore->dir);

}


int main()
{   

    NoCovidCV *raiz = NULL; // IMPORTANTE

    inserirCovid(&raiz, "Santago", 0);
    inserirCovid(&raiz, "Fogo", 0);
    inserirCovid(&raiz, "Sal", 0);
    inserirCovid(&raiz, "Maio", 0);
    inserirCovid(&raiz, "Brava", 0);
    inserirCovid(&raiz, "S. Antão", 0);
    inserirCovid(&raiz, "S. Vicente", 0);
    inserirCovid(&raiz, "Boavista", 0);
    inserirCovid(&raiz, "S. Nicolau", 0);
    inserirCovid(&raiz, "St Luzia", 0);


    InOrdem(raiz);


    return 0;
}