int main(){ DEQUE deque; inicializarDeque(&deque); help(); char comando = ' '; scanf("%c",&comando); while (comando != 'q'){ switch (comando) { case 'i' : inserir1(&deque); break; case 'j' : inserir2(&deque); break; case 'e' : excluir1(&deque); break; case 'f' : excluir2(&deque); break; case 'o' : exibir1(&deque); break; case 'p' : exibir2(&deque); break; case 'd' : destruir(&deque); break; case 'l' : meuLog(&deque); break; case 'h' : help(); break; case '1' : exibirPrimeiro1(&deque); break; case '2' : exibirPrimeiro2(&deque); break; default: {while (comando != '\n') scanf("%c",&comando);}; } scanf("%c",&comando); } return 0; }
int main(int argc, char** argv) { RubroNegra arvore; arvore = novaRubroNegra(); int chave; char operacao; void* resultadoBusca; while (operacao != 'q') { usage(); operacao = getchar(); getchar(); switch (operacao) { case 'i': scanf("%d", &chave); printf("Inserindo chave: [%d].\n", chave); if (inserir(arvore, chave, (void*) chave)) printf("Chave [%d] já existe.\n", chave); else printf("Chave [%d] inserida.\n", chave); getchar(); break; case 'r': scanf("%d", &chave); printf("Removendo chave: [%d].\n", chave); if (remover(arvore, chave)) printf("Chave [%d] não encontrada.\n", chave); else printf("Chave [%d] removida.\n", chave); getchar(); break; case 'b': scanf("%d", &chave); printf("Buscando chave: [%d].\n", chave); resultadoBusca = buscar(arvore, chave); if (resultadoBusca == NULL) printf("Chave [%d] não encontrada.\n", chave); else printf("Resultado da busca: [%d].\n", (int) resultadoBusca); getchar(); break; case 'p': printf("Imprimindo árvore.\n"); imprimir(arvore); break; case 'd': printf("Destruindo árvore.\n"); destruir(arvore); printf("Árvore destruída.\n"); break; default: usage(); break; } } return 0; }
void Frecuencias::add(int entero){ int donde=0; while(donde<npares && parejas[donde].dato<entero){ donde++; } // Lo anterior podría sustituirse por la siguiente línea: //donde=buscar(entero); std::cout<<"Insertando "<<entero<<" en posicion "<<donde<<std::endl; if(donde<npares && parejas[donde].dato==entero){ // Si ya estaba incluido en el array parejas[donde].nVeces++; } else{ // si no estaba incluido, insertar en posición donde Pareja *nuevoPares=new Pareja[npares+1]; for(int i=0;i<donde;i++){ nuevoPares[i]=parejas[i]; } nuevoPares[donde].dato=entero; nuevoPares[donde].nVeces=1; for(int i=donde+1;i<npares+1;i++){ nuevoPares[i]=parejas[i-1]; } destruir(); parejas=nuevoPares; npares++; } }
void DestruirTablaHash (TablaHash t) { register i; for (i=0;i<NCASILLAS;i++) destruir(t[i]); free(t); }
int main(){ int opcion; tListaGrabaciones listaGrabaciones; tListaProgramas listaProgramas; inicializar(listaProgramas); crear(listaGrabaciones); if (cargar(listaProgramas)){ do{ system("pause"); system("cls"); opcion = menu(); switch (opcion){ case 1: tProgramaPtr programa; programa = selecPrograma(listaProgramas); if (insertar(listaGrabaciones, programa)) cout << "Nueva grabacion inserada" << endl; else cout << "Hubo un fallo al insertar la grabacion" << endl; break; case 2: mostrar(listaGrabaciones, 0); break; case 3: destruir(listaProgramas); destruir(listaGrabaciones); cout << "Se han eliminado las listas de programas y grabaciones" << endl; break; } } while (opcion != 3); } else cout << "Error al cargar la lista de programas desde el fichero" << endl; cout << "Cerrando aplicacion..." << endl; system("pause"); return 0; }
Frecuencias& Frecuencias::operator=(const Frecuencias& otro){ if(this!=&otro){ destruir(); crear(otro.npares); for(int i=0;i<npares;i++){ parejas[i]=otro.parejas[i]; } } return *this; }
int main(int argc, char** argv){ Pila p1, p2; int i; p1=crear();//creamos las pilas p2=crear(); if(esta_vacia(p1) == true)//comprobamos que estabn vacias printf("La pila p1 esta vacia\n"); if(esta_vacia(p2) == true) printf("La pila p2 esta vacia\n"); for(i=0;i<20;i++){ //metemos numeros en la pila if(i%2==0) apilar(p1,i); else apilar(p2,i); } printf("Los elementos de la pila p1 son: \n\t"); while(!esta_vacia(p1)) //mientras no este vacia printf("%d ", desapilar(p1));//vamos sacando los numeros y mostandolos puts(""); vaciar(p1);//la vaciamos printf("Los elementos de la pila p2 son: \n \t"); while(!esta_vacia(p2)) printf("%d ",desapilar(p2)); destruir(p1);//eliminamos la pila destruir(p2); getche(); return (EXIT_SUCCESS); }
int main() { struct pilha *minha_pilha; int tamanho; minha_pilha = criar(); empilhar(minha_pilha, 'a'); empilhar(minha_pilha, 'b'); empilhar(minha_pilha, 'c'); tamanho = tamanho_pilha(minha_pilha); printf("Desempilhando elementos \n"); for (int i = 0; i < tamanho; i++) { printf("%c \n", desempilhar(minha_pilha)); } destruir(minha_pilha); return 0; }
void eliminarNodo(ListaPiso &listaP, PtrNodoPiso ptrNodoP){ PtrNodoPiso ptrPrevio; /* verifica que la lista no esté vacia y que nodo no sea fin*/ if ((! listaVacia(listaP)) && (ptrNodoP != finP())) { if (ptrNodoP == primero(listaP)) listaP.primeroPiso = siguiente(listaP,primero(listaP)); else { ptrPrevio = anterior( listaP , ptrNodoP ); ptrPrevio->sgteP = ptrNodoP->sgteP; } // Si el dato es un TDA, acá habría que llamar al destructor. destruir(ptrNodoP->pilUb); delete ptrNodoP; } }
///------------------------------------------------------------------------- /// Acessar a Partir do Fim ///------------------------------------------------------------------------- CLIENTE * acessarAPartirFim(LISTA ** lista, int pos) { int cont=0; LISTA * novo = (LISTA*)calloc (1,sizeof(LISTA)); LISTA * aux = *lista; CLIENTE cl; CLIENTE *cp; novo = criarLista(); if (*lista == NULL) { return NULL; } else { while(aux!=NULL) { cl = aux->info; inserirInicio(&novo, cl); aux=aux->prox; } } aux=novo; while(aux!=NULL && cont!=pos) { aux=aux->prox; cont++; } if (cont!=pos) { return NULL; } else { return &aux->info; } destruir(&novo); }
int main(int argc, char const *argv[]) { printf("antes\n"); system("free"); BigNum *big = criar(); int i = 0; for(i=0; i < 100; i++){ adicionarNumero(i, big); } //for(i=0; i < 10; i++){ // adicionarNumero(i, big); //} getchar(); printf("depois alocado\n"); system("free"); destruir(big); getchar(); printf("depois desalocado\n"); system("free"); return 0; }
Lista * listaXlista(Lista *operando1, Lista *operando2) // funcionando perfeitamente { int tam2 = tamanho(operando2); int i,j; Lista *resultado1 = criar(); Lista *resultado2; Lista *lixo; for(j = 0; tam2 > 0; j++, tam2--) { resultado2 = listaXnum(operando1, ler_pos(operando2, tam2-1)); for(i = 0; i<j ;i++) { inserir_ultimo(resultado2, 0); } // como o resultado1 sempre vai pegar um valor de soma e vai perder o caminho para a lista original // a variavel "lixo" sempre pega os endereços perdidos e destrói. lixo = resultado1; resultado1 = somar(resultado1, resultado2); destruir(lixo); } return resultado1; }
void destruir(tListaGrabaciones & listaGrabaciones){ for(int i = 0; i < listaGrabaciones.contador; i++){ destruir(listaGrabaciones.grabacion[i].listaProgramas); delete[] listaGrabaciones.grabacion; } }
///------------------------------------------------------------------------- /// MAIN ///------------------------------------------------------------------------- int main() { int op=0; int posicao=0; char vetNome[30]; LISTA *lista; CLIENTE dl; CLIENTE *cp; lista = criarLista(); do { printf("1 - Criar Lista\n"); printf("2 - Inserir Inicio\n"); printf("3 - Inserir Final\n"); printf("4 - Inserir Posicao\n"); printf("5 - Acessar a partir Inicio\n"); printf("6 - Acessar a partir Fim\n"); printf("7 - Listar do inicio ao fim\n"); printf("8 - Listar do fim ao inicio\n"); printf("9 - Eliminar\n"); printf("10 - Buscar nome Retorna endereco\n"); printf("11 - Buscar nome Retorna posicao\n"); printf("12 - Tamanho da Lista\n"); printf("13 - Destruir\n"); printf("14 - Sair\n"); printf("15 - Salvar\n"); printf("16 - Ler\n"); printf("opcao: "); scanf("%d", &op); switch(op) { case 1: //Criar Lista lista = criarLista(); break; case 2: // Inserir Inicio printf("nome: "); scanf("%s", dl.nome); printf("idade: "); scanf("%d", &dl.idade); inserirInicio(&lista, dl); break; case 3: // Inserir Final printf("nome: "); scanf("%s", dl.nome); printf("idade: "); scanf("%d", &dl.idade); inserirFinal(&lista, dl); break; case 4: // Inserir Posicao printf("nome: "); scanf("%s", dl.nome); printf("idade: "); scanf("%d", &dl.idade); printf("posicao: "); scanf("%d", &posicao); inserirPosicao(&lista, posicao, dl); break; case 5: // Acessar a partir Inicio printf("posicao: "); scanf("%d", &posicao); cp = acessarAPartirInicio(&lista, posicao); if (cp!=NULL) { printf("nome: %s\n", cp->nome); printf("idade: %d\n", cp->idade); } else{ printf("posicao nao existe\n"); } break; case 6: // Acessar a partir Fim printf("posicao: "); scanf("%d", &posicao); cp = acessarAPartirFim(&lista, posicao); if (cp!=NULL) { printf("nome: %s\n", cp->nome); printf("idade: %d\n", cp->idade); } else{ printf("posicao nao existe\n"); } break; case 7: // Listar do Inicio ao Fim listarInicioFim(&lista); break; case 8: // Listar do Fim ao Inicio listarFimInicio(&lista); break; case 9: // Eliminar Posição printf("posicao: "); //scanf("%s", &posicao); scanf("%d", &posicao); eliminarPosicao(&lista, posicao); break; case 10: // Buscar e retornar Endereco printf("nome: "); scanf("%s", &vetNome); cp = buscarEnderecoNome(vetNome, &lista); if (cp!=NULL) { printf("nome: %s\n", cp->nome); printf("idade: %d\n", cp->idade); } else{ printf("nao existe o nome\n"); } break; case 11: // Buscar e retornar Posicao printf("nome: "); scanf("%s", &vetNome); posicao = buscarPosicaoNome(vetNome, &lista); if (posicao >= 0) { printf("posicao: %d\n", posicao); cp = acessarAPartirInicio(&lista, posicao); printf("nome: %s\n", cp->nome); printf("idade: %d\n", cp->idade); } else{ printf("nao existe o nome\n"); } break; case 12:// Tamanho da lista printf("tamanho: %d\n\n", tamanho(&lista)); // nao precisa passar por referencia break; case 13:// Destruir Lista destruir(&lista); break; case 15:// Salvar salvar(&lista); break; case 16:// Ler ler(&lista); break; } }while(op!=14); return 0; }
Frecuencias::~Frecuencias(){ destruir(); }
void terminar(Pilha * pino1, Pilha * pino2, Pilha * pino3){ destruir(pino1); destruir(pino2); destruir(pino3); }