Exemple #1
0
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;

}
Exemple #3
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;
}
Exemple #6
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;
}
Exemple #7
0
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);
}
Exemple #8
0
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;
  }
}
Exemple #10
0
///-------------------------------------------------------------------------
/// 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);
}
Exemple #11
0
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;
}
Exemple #13
0
void destruir(tListaGrabaciones & listaGrabaciones){
	for(int i = 0; i < listaGrabaciones.contador; i++){
		destruir(listaGrabaciones.grabacion[i].listaProgramas);
		delete[] listaGrabaciones.grabacion;
	}
}
Exemple #14
0
///-------------------------------------------------------------------------
/// 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;
}
Exemple #15
0
Frecuencias::~Frecuencias(){
  destruir();
}
Exemple #16
0
void terminar(Pilha * pino1, Pilha * pino2, Pilha * pino3){
    destruir(pino1);
    destruir(pino2);
    destruir(pino3);
}