Esempio n. 1
0
int main(){

    criarArvore(&arvore);
    menuInicial();

    return 0;
}
/*********************************MAIN************************************/
int main(int argc, char **argv) {
    criarArvore(&arvore);/*passa o endereco pra que a funcao crie*/
    FILE *arquivo, *arquivoremove, *arquivoentrada, *desenho_arvore, *fim;
    DIR *dir;
    struct dirent *lsdir;
    dir= opendir(argv[1]);/*Url passada dos arquivos dos alunos.dat*/
    char caminho[300], caminhosaida[300], caminhoremove[300];
    /* Primeiro parâmetro: o de leitura */

    /***********************CARREGANDO ARQUIVOS DA PASTA****************************************/
    while ( ( lsdir = readdir(dir) ) != NULL )//atraves do readdir o lsdir tem struct com nomes como parametros..
    {
        if (strcmp(lsdir->d_name, ".") != 0 && strcmp(lsdir->d_name, "..")) { /*O lsdir traz pontos indesejaveis, entao para que nao use-o - uma condicao*/
            /*De um por um, com o lsdir->d_name*/
            strcpy(caminho,argv[1]);//salvando em uma variavel
            strcat(caminho, "/");
            strcat(caminho,lsdir->d_name);/*Concatenando*/
            //printf("%s\n",caminho);
            arquivo = fopen(caminho, "r");
            carregaArquivo(&arvore, arquivo);
        }
    }

    closedir(dir);
    /**************IMPRESSAO EM DESENHO INICIAL.RES*****************/
    strcpy(caminhosaida, argv[3]);
    strcat(caminhosaida,"/carga-inicial.res");
    desenho_arvore = fopen(caminhosaida, "w");
    mostrar(arvore.topo, 0, desenho_arvore);
    fclose(desenho_arvore);
    /*********************REMOVER**********************/
    strcpy(caminhoremove, argv[3]);//terceiro argumento..saída
    strcat(caminhoremove, "/");
    strcat(caminhoremove, "excluir.res");
    arquivoremove = fopen(caminhoremove, "w");
    /**********concatenando strings para a entrada ************/
    strcpy(caminho, argv[2]);
    strcat(caminho, "/");
    strcat(caminho, "excluir.in");
    arquivo = fopen(caminho, "r");
    remover(arvore, arquivo, arquivoremove);//removendo todos do excluir.in o argv2 é o parametro de remocao
    /*****************DESENHO APOS EXCLUSAO.RES (matriculas impressa em formato de arvore********************/
    strcpy(caminhosaida, argv[3]);
    strcat(caminhosaida, "/apos-exclusao.res");
    desenho_arvore = fopen(caminhosaida, "w");
    mostrar(arvore.topo, 0, desenho_arvore);
    fclose(desenho_arvore);
    /**************IMPRESSAO APOS EXCLUSAO***********/
    strcpy(caminhosaida, argv[3]);
    strcat(caminhosaida,"/final.res");
    fim = fopen(caminhosaida,"w");
    salvar(arvore.topo, fim);
    /**************************************************/
    return 0;
}
Esempio n. 3
0
int searchAVL_Tree(struct AVL_Tree *tree, void *elem) {
	if (tree == NULL) return 0;
	if (tree->root == NULL) return 0;
	struct AVL_TreeNode *no_aux = tree->root;
	if (*(int*)elem == *(int*)no_aux->elem) return 1; //Achou
	struct AVL_Tree *arvore_aux = criarArvore();
	if (*(int*)elem < *(int*)no_aux->elem) {
		arvore_aux->root = no_aux->left;
		return searchAVL_Tree(arvore_aux, elem);
	}
	if (*(int*)elem > *(int*)no_aux->elem) {
		arvore_aux->root = no_aux->right;
		return searchAVL_Tree(arvore_aux, elem);
	}
	return 0; //Nao Achou
}
Esempio n. 4
0
main(){              
       int i = 0;
       int v[12] = {10, 15, 5, 7, 9, 25, 30, 19, 1, 4, 8, 22};
       
       while(i < sizeof(v)/sizeof(int)){
            criarArvore(v[i]);
            i++;
       }
       
       printf("\n Pos-ordem: ");
       raiz->lerPosOrdem();
       printf("\n In-ordem: ");
       raiz->lerInOrdem();
       printf("\n Pre-ordem: ");
       raiz->lerPreOrdem();
       
       getch();
}