arvore *desalocar(arvore *aux){ if(aux!=NULL){ aux->esq=desalocar(aux->esq); aux->dir=desalocar(aux->dir); delete aux; } return NULL; }//método para desalocar a arvore
/* * Função recursiva para exclusão de nós (usada no esvaziar). */ No* desalocar( No* no ) { if ( no != NULL ) { no->esquerda = desalocar( no->esquerda ); no->direita = desalocar( no->direita ); free( no ); } return NULL; }
int main (void) { string s; celula *ini; ini = malloc (sizeof (celula)); ini->prox = NULL; while ((s = readLine (stdin)) != NULL) processarLinha (ini, s); imprimeDicionario (ini); desalocar (ini); return EXIT_SUCCESS; }
int main(){ VetorBi *m= matriz(9,9); int i,j; atribuirValores(m); printf("Sudoku\n\n"); imprimirMatriz(m); desalocar(m); system("pause"); return 0; }
int main(){ int ****Aula = NULL; //Matriz aula do professor i,para a turma j,no dia k no horário l int ***Pref = NULL; //Matriz de preferência do professor em dia e horário int **cargaHoraria = NULL; //Matriz de Carga Horária int nProfs, nTurmas, nDias, nHorarios, op = 0; srand(time(NULL)); do{ menu(); scanf("%d", &op); switch(op){ case 1: criarInstancia(); break; case 2: GRASP(&Aula, &Pref, &cargaHoraria, &nProfs, &nTurmas, &nDias, &nHorarios); system("pause"); break; case 3: if(Aula != NULL){ criaSimplex(Aula, Pref, cargaHoraria, nProfs, nTurmas, nDias, nHorarios); }else{ printf("Voce deve executar o GRASP antes!\n"); } system("pause"); break; default: break; } }while(op >= 1 && op <= 3); //fObjetivo(Aula, Pref, nProfs, nTurmas, nDias, nHorarios); if(Aula != NULL) desalocar(&Aula, &Pref, &cargaHoraria, nProfs, nTurmas, nDias); return TRUE; }
/* * Função para esvaziar a árvore. */ void esvaziar( ArvoreBinariaBusca *arvore ) { arvore->raiz = desalocar( arvore->raiz ); }
int main(void){ arvore *raiz=NULL; int op,achou,num; do{ printf("\nMENU"); printf("\n1 - Insere na Arvore"); printf("\n2 - Consultar um no da Arvore"); printf("\n3 - Consultar toda Arvore em pre-ordem"); printf("\n4 - Consultar toda Arvore em ordem"); printf("\n5 - Consultar toda Arvore em pos-ordem"); printf("\n6 - Excluir um no da Arvore"); printf("\n7 - Esvaziar toda Arvore"); printf("\n8 - Sair"); printf("\nOpcao: "); scanf("%i",&op); if(op==1){ printf("\nNumero a inserir na Arvore: "); scanf("%i",&num); raiz=insere(raiz,num); printf("\nNumero inserido!"); }//opção insere if(op==2){ if(raiz==NULL) printf("\nArvore vazia!"); else{ printf("\nNumero a ser consultado: "); scanf("%i",&num); achou=0; achou=consultar(raiz,num,achou); if(achou==1) printf("\nNumero existente na Arvore!"); else printf("\nNumero nao existente na Arvore!"); } }//opção busca numero if(op==3){ if(raiz==NULL) printf("\nArvore vazia!"); else{ printf("\nListando em pre-ordem\n"); preordem(raiz); } }//opçao listar preordem if(op==4){ if(raiz==NULL) printf("\nArvore vazia!"); else{ printf("\nListando em ordem\n"); emordem(raiz); } }//opçao listar em ordem if(op==5){ if(raiz==NULL) printf("\nArvore vazia!"); else{ printf("\nListando em pos-ordem\n"); posordem(raiz); } }//opçao listar pos ordem if(op==6){ if(raiz==NULL) printf("\nArvore vazia!"); else{ printf("\nInforme o numero a ser removido: "); scanf("%i",&num); achou=0; achou=consultar(raiz,num,achou); //verifica se o nó existe if(achou==0) printf("\nNumero nao existente na Arvore!"); else{ raiz=remover(raiz,num); printf("\nNumero removido!"); } } }//opçao remoção if(op==7){ if(raiz==NULL) printf("\nArvore vazia!"); else{ raiz=desalocar(raiz); printf("\nArvore desalocada!"); } }//opçao desaloca printf("\n************************************************************\n"); getc(stdin); }while(op>0 && op<9 && op!=8); return 0; }