int main()
{
    node *arvore;

    inserir_chave(&arvore, 10);
    inserir_chave(&arvore, 13);
    inserir_chave(&arvore, 8);
    inserir_chave(&arvore, 9);
    inserir_chave(&arvore, 5);
    // inserir_chave(&arvore, 70);
    // inserir_chave(&arvore, 3);
    // inserir_chave(&arvore, 7);
    // inserir_chave(&arvore, 50);
    // inserir_chave(&arvore, 30);

    if(arvore_eh_estritamente_binaria(arvore))
        puts("A árvore é estritamente binaria!");
    else
        puts("A árvore não é esritamente binária!");

    return 0;
}
/**
 * Função principal
 * 
 * @param argc
 * @param argv
 * @return 
 */
int main(int argc, char *argv[]) {
    char nome[20], operacao;
    int idade, chave;

    // Criação de lista de reinserção de elementos
    node *LISTA = (node *) malloc(sizeof (node));
    if (!LISTA) {
        //        fprintf(stderr, "memória insuficiente para criar lista \n");
    } else {
        inicia(LISTA);
    }

    // Criação de arquivo
    if ((arquivo_hashing = fopen(ARQUIVO, "rb")) == NULL) {
        // inicializa tabela hash
        inicializar();
        // cria arquivo para inserção da tabela hash
        criar_arquivo();

    }

    // Verifica qual operação será executada
    scanf("%c", &operacao);

    do {
        switch (operacao) {
            case 'i':
                scanf("%d", &chave);
                // scanf lendo string com espaços em branco
                scanf(" %[^\n]s", &nome);
                //                fflush(stdin);
                scanf("%d", &idade);
                inserir_chave(chave, nome, idade);
                break;

            case 'c':
                //                fprintf(stderr, "CONSULTAR\n");
                scanf("%d", &chave);
                consultar(chave, 0);
                break;

            case 'r':
                //                fprintf(stderr, "REMOVER\n");
                scanf("%d", &chave);
                int result = consultar(chave, 1);
                if (result != -1) {
                    //                    fprintf(stderr, "indíce para remover: %d\n", result);
                    // remoção
                    remover(chave);
                } else {
                    fprintf(stderr, "chave nao encontrada: %d", chave);
                }
                break;

            case 'p':
                //                fprintf(stderr, "IMPRIMIR\n");
                imprimir();
                break;

            case 'm':
                //                fprintf(stderr, "MEDIA DE ACESSOS\n");
                media_acessos();
                break;

            case 'e':
                return 0;
                break; //exit

            default:
                break;

        }
        // limpa caracter do buffer antes do próximo loop
        operacao = getchar();
    } while (operacao != 'e');

    //    fclose(arquivo_hashing);
    return 0;
}
void reinserir_chave(int chave, char nome[20], int idade) {
    inserir_chave(chave, nome, idade);
    //    fclose(arquivo_hashing);
}