예제 #1
0
void inserirArvore(Arvore **pRaiz, Cliente **cliente){
    if(*pRaiz == NULL){
        *pRaiz = criarNo();
        (*pRaiz)->cliente = *cliente;	 
    }else{
        if((*cliente)->matricula < (*pRaiz)->cliente->matricula)
            inserirArvore( &((*pRaiz)-> esq), cliente);
        if((*cliente)->matricula > (*pRaiz)->cliente->matricula)
            inserirArvore( &((*pRaiz)-> dir), cliente);
        *pRaiz = balancearArvoreAVL(pRaiz);
    }
}
예제 #2
0
void carregaArquivo(tipoArvore* arvore, FILE *arquivo) { //passo por parametro a raiz e url
    FILE *arquivo2; //auxiliar para trocar o ; pelo espaço
    char txt, nome[50];
    float nt1, nt2, nt3;
    int matricula;
    NO *novo_aluno;
    // arquivo apenas ler o arquivo que quer carregar
    arquivo2= fopen ("auxiliar.dat","w"); //Cria um arquivo para ser temporário, onde vou trocar as ',' pelo '.' para os numeros
    while ((txt=fgetc(arquivo))!= EOF) { //caracter por caracter até encontrar o fim do arquivo.
        if (txt == ',') //faço a troca da virgula por ponto, pois o computador so entende float com ponto
            txt = '.';
        fprintf(arquivo2,"%c", txt);
    }
    fclose(arquivo2);//fechando para abrir em modo leitura
    arquivo2 = fopen("auxiliar.dat", "r");
    while (!feof(arquivo2)) { //enquanto nao encontrar o fim do arquivo
        fscanf(arquivo2, "%d; %[^;]s", &matricula, nome); // o [^;] é para ler toda a string ate encontrar ';'
        fscanf(arquivo2, ";%f ;%f ;%f;", &nt1, &nt2, &nt3);
        //Enviando para ARVORE:
        if (!feof(arquivo2)) { //pra que na ultima vez ele nao faça de novo
            novo_aluno = noNovo(nt1, nt2, nt3, nome,matricula); //aloca os valores no novo aluno.
            inserirArvore(novo_aluno, arvore);
        }
    }
    fclose(arquivo2);
    remove("auxiliar.dat");//Apago o arquivo temporário!
}
예제 #3
0
void lerArquivo(tipoArvore *arvore, char *nomeArquivo){
    FILE *arquivo;
    int valor;
    arquivo = fopen(nomeArquivo, "r");
    if(arquivo == 0){
        printf("\nNao existe o arquivo na pasta do programa.\n\n");
    }

    else {
        while((fscanf(arquivo,"%d",&valor) != EOF)){
            inserirArvore(valor, arvore);
        }
        printf("\nOs elementos do arquivo foram inseridos na arvore com sucesso.\n\n");
    }
    //fclose(arquivo);
}