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