Exemplo n.º 1
0
void map() {
	  lista* l = lista_crear();
	  jugador* j1 = crear_jugador("Ginobili", "Argentina", 5, 198);
	  jugador* j2 = crear_jugador("Scola", "Argentina", 6, 198);
	  jugador* j3 = crear_jugador("Prigioni", "Argentina", 7, 198);
	  jugador* j4 = crear_jugador("Ginobili", "Argentina", 9, 199);
	  jugador* j5 = crear_jugador("Ginobili", "Argentina", 10, 199);

	  insertar_ordenado(l, (void*)j1, (tipo_funcion_cmp)&menor_jugador);
	  lista* lmap=mapear(l, (tipo_funcion_mapear)&i);
	  assert(((jugador*)lmap->primero->datos)->altura==j1->altura);
	  lista_imprimir(lmap, "hola.out",(tipo_funcion_imprimir)&imprimir_jugador);
	  lista_borrar(lmap,(tipo_funcion_borrar)&borrar_jugador);

	  insertar_ordenado(l, (void*)j2, (tipo_funcion_cmp)&menor_jugador);
	  insertar_ordenado(l, (void*)j3, (tipo_funcion_cmp)&menor_jugador);
	  insertar_ordenado(l, (void*)j4, (tipo_funcion_cmp)&menor_jugador);
	  insertar_ordenado(l, (void*)j5, (tipo_funcion_cmp)&menor_jugador);

	  lista* lmap2=mapear(l, (tipo_funcion_mapear)&normalizar_jugador);
	  lista_imprimir(lmap2, "hola.out",(tipo_funcion_imprimir)&imprimir_jugador);

	  jugador* n1 = normalizar_jugador(j1);

	  assert(((jugador*)lmap2->primero->datos)->altura==n1->altura);

	  borrar_jugador(n1);
	  lista_borrar(lmap2,(tipo_funcion_borrar)&borrar_jugador);
	  lista_borrar(l,(tipo_funcion_borrar)&borrar_jugador);
}
Exemplo n.º 2
0
void ordenar() {
	  lista* l = lista_crear();
	  jugador* j1 = crear_jugador("Ginobili", "Argentina", 5, 198);
	  nodo* n1 = nodo_crear(j1);
	  jugador* j2 = crear_jugador("Scola", "Argentina", 6, 198);
	  nodo* n2 = nodo_crear(j2);
	  jugador* j3 = crear_jugador("Prigioni", "Argentina", 7, 198);
	  nodo* n3 = nodo_crear(j3);
	  jugador* j4 = crear_jugador("Ginobili", "Argentina", 9, 199);
	  nodo* n4 = nodo_crear(j4);
	  jugador* j5 = crear_jugador("Ginobili", "Argentina", 10, 199);
	  nodo* n5 = nodo_crear(j5);

	  insertar_ultimo(l, n1);

	  lista* lord=ordenar_lista_jugadores(l);
	  lista_imprimir(lord, "hola.out",(tipo_funcion_imprimir)&imprimir_jugador);
	  assert(((jugador*)lord->primero->datos)->altura==j1->altura);
	  lista_borrar(lord,(tipo_funcion_borrar)&borrar_jugador);

	  insertar_ultimo(l, n2);
	  insertar_ultimo(l, n3);
	  insertar_ultimo(l, n4);
	  insertar_ultimo(l, n5);

	  lista* lord2=ordenar_lista_jugadores(l);

	  assert(((jugador*)lord2->primero->datos)->altura==j1->altura);

	  lista_imprimir(lord2, "hola.out",(tipo_funcion_imprimir)&imprimir_jugador);

	  lista_borrar(lord2,(tipo_funcion_borrar)&borrar_jugador);
	  lista_borrar(l,(tipo_funcion_borrar)&borrar_jugador);
}
Exemplo n.º 3
0
void generar() {
	  lista* l = lista_crear();
	  jugador* j1 = crear_jugador("Ginobili", "Argentina", 5, 198);
	  jugador* j2 = crear_jugador("Scola", "Transnistria", 6, 198);
	  jugador* j3 = crear_jugador("Prigioni", "Argentina", 7, 198);
	  jugador* j4 = crear_jugador("Ginobili", "Argentina", 9, 199);
	  jugador* j5 = crear_jugador("Ginobili", "Transnistria", 10, 199);

	  insertar_ordenado(l, (void*)j1, (tipo_funcion_cmp)&menor_jugador);
	  insertar_ordenado(l, (void*)j2, (tipo_funcion_cmp)&menor_jugador);
	  insertar_ordenado(l, (void*)j3, (tipo_funcion_cmp)&menor_jugador);
	  insertar_ordenado(l, (void*)j4, (tipo_funcion_cmp)&menor_jugador);
	  insertar_ordenado(l, (void*)j5, (tipo_funcion_cmp)&menor_jugador);

	  lista* gen=generar_selecciones(l);
	  lista_imprimir(gen, "hola.out",(tipo_funcion_imprimir)&imprimir_seleccion);

	  assert(((seleccion*)gen->primero->sig->datos)->alturaPromedio==6);
								//Los dos Transnistrios son de 6 pies
	  assert(((jugador*)((seleccion*)gen->primero->datos)->jugadores->primero->datos)->altura==6); 
								//El primero de argentina es Gino (6 pies)

	  lista_borrar(gen,(tipo_funcion_borrar)&borrar_seleccion);
	  lista_borrar(l,(tipo_funcion_borrar)&borrar_jugador);
}
Exemplo n.º 4
0
void filtrar() {
	  lista* l = lista_crear();
	  jugador* j1 = crear_jugador("Ginobili", "Argentina", 5, 198);
	  jugador* j2 = crear_jugador("Scola", "Antartida", 6, 198);
	  jugador* j3 = crear_jugador("Prigioni", "Argentina", 7, 198);
	  nodo* n3 = nodo_crear(j3);
	  jugador* j4 = crear_jugador("Ginobili", "Argentina", 9, 199);
	  jugador* j5 = crear_jugador("Ginobili", "Antartida", 10, 199);

	  insertar_ultimo(l, n3);
	  insertar_ordenado(l, (void*)j1, (tipo_funcion_cmp)&menor_jugador);
	  insertar_ordenado(l, (void*)j2, (tipo_funcion_cmp)&menor_jugador);
	  insertar_ordenado(l, (void*)j4, (tipo_funcion_cmp)&menor_jugador);
	  insertar_ordenado(l, (void*)j5, (tipo_funcion_cmp)&menor_jugador);

	  lista* lfil=filtrar_jugadores(l, (tipo_funcion_cmp)&menor_jugador,n3);
	  lista_imprimir(lfil, "hola.out",(tipo_funcion_imprimir)&imprimir_jugador);
	  assert(((jugador*)lfil->primero->sig->sig->datos)->altura==j4->altura);
	  lista_borrar(lfil,(tipo_funcion_borrar)&borrar_jugador);

	  lista* lfil2=filtrar_jugadores(l, (tipo_funcion_cmp)&pais_jugador,n3);
	  lista_imprimir(lfil2, "hola.out",(tipo_funcion_imprimir)&imprimir_jugador);
	  assert(((jugador*)lfil2->primero->sig->sig->datos)->altura==j3->altura);
	  lista_borrar(lfil2,(tipo_funcion_borrar)&borrar_jugador);

	  lista_borrar(l,(tipo_funcion_borrar)&borrar_jugador);
}
int testLista()
{
    char *nombre = "aaa";
    char *pais = "pepe";
    jugador *pepe = crear_jugador(nombre ,pais,'4',196);
    
    char *nombre2 = "ccc";
    char *pais2 = "pepe";
    jugador *pepe2 = crear_jugador(nombre2 ,pais2,'4',196);
    
    char *nombre3 = "bbb";
    char *pais3 = "pepe";
    jugador *pepe3 = crear_jugador(nombre3 ,pais3,'4',196);
    
    lista *miLista;

    printf("Creando Lista...\n");
    miLista = lista_crear();
     
    printf("Insertando jugador 1\n");
    insertar_ordenado(miLista,(void*)pepe, (tipo_funcion_cmp)&menor_jugador);
    
    printf("Insertando jugador 2\n");
    insertar_ordenado(miLista,(void*)pepe2, (tipo_funcion_cmp)&menor_jugador);

    printf("Insertando jugador 3\n");
    insertar_ordenado(miLista,(void*)pepe3, (tipo_funcion_cmp)&menor_jugador);

    lista *backUp = miLista;
    miLista = ordenar_lista_jugadores(backUp);

    lista_borrar(backUp, (tipo_funcion_borrar)&borrar_jugador);    

    nodo *unNodo = miLista->primero;
    jugador *unj = unNodo->datos;
    printf("Nombre: %s \n",unj->nombre);

    unNodo = miLista->primero->sig;
    unj = unNodo->datos;
    printf("Nombre: %s \n",unj->nombre);

    unNodo = miLista->primero->sig->sig;
    unj = unNodo->datos;
    printf("Nombre: %s \n",unj->nombre);

    lista* B = mapear(miLista, (tipo_funcion_mapear)&normalizar_jugador);

    printf("Borrando Lista...\n");
    lista_borrar(B, (tipo_funcion_borrar)&borrar_jugador);
    lista_borrar(miLista, (tipo_funcion_borrar)&borrar_jugador);
    printf("Ok!\n");
    return 0;
}
Exemplo n.º 6
0
void listadesels() {
	  lista* l = lista_crear();
	  jugador* j1 = crear_jugador("Ginobili", "Argentina", 5, 198);
	  jugador* j2 = crear_jugador("Scola", "Argentina", 6, 198);
	  jugador* j3 = crear_jugador("Prigioni", "Argentina", 7, 198);
	  jugador* j4 = crear_jugador("Ginobili", "Argentina", 9, 199);
	  jugador* j5 = crear_jugador("Ginobili", "Argentina", 10, 199);

	  insertar_ordenado(l, (void*)j1, (tipo_funcion_cmp)&menor_jugador);
	  insertar_ordenado(l, (void*)j2, (tipo_funcion_cmp)&menor_jugador);
	  insertar_ordenado(l, (void*)j3, (tipo_funcion_cmp)&menor_jugador);
	  insertar_ordenado(l, (void*)j4, (tipo_funcion_cmp)&menor_jugador);
	  insertar_ordenado(l, (void*)j5, (tipo_funcion_cmp)&menor_jugador);

	  seleccion* s=crear_seleccion("Uruguay",altura_promedio(l),l);
	  lista* l2 = lista_crear();
	  seleccion* s2=crear_seleccion("Andorra",0,l2);
	  lista* partido=lista_crear();
	  insertar_ordenado(partido, (void*)s, (tipo_funcion_cmp)&menor_seleccion);
	  insertar_ordenado(partido, (void*)s2, (tipo_funcion_cmp)&menor_seleccion);

	  assert(((seleccion*)partido->primero->datos)->jugadores->primero== NULL);
	  assert(((seleccion*)partido->primero->sig->datos)->alturaPromedio==(992/5.0));

	  lista_imprimir(partido, "hola.out",(tipo_funcion_imprimir)&imprimir_seleccion);
	  lista_borrar(partido,(tipo_funcion_borrar)&borrar_seleccion);
}
int p1()
{
    lista *l = lista_crear();
    lista_imprimir(l,"test.txt",(tipo_funcion_imprimir)&g);
    lista_borrar(l,(tipo_funcion_borrar) &f);
    return 0;
}
int testSeleccion()
{
    lista* A = lista_crear();
    jugador* Gino = crear_jugador("Ginobili", "Argentina", 6, 198);
    jugador* GinoPies = normalizar_jugador(Gino);
    jugador* Gino2 = crear_jugador("Ginobili", "Argentina", 6, 198);
    jugador* GinoPies2 = normalizar_jugador(Gino);
    insertar_ordenado(A, (void*)GinoPies, (tipo_funcion_cmp)&menor_jugador);
    insertar_ordenado(A, (void*)Gino, (tipo_funcion_cmp)&menor_jugador);
    insertar_ordenado(A, (void*)GinoPies2, (tipo_funcion_cmp)&menor_jugador);
    insertar_ordenado(A, (void*)Gino2, (tipo_funcion_cmp)&menor_jugador);
    seleccion* w = crear_seleccion("Argentina", altura_promedio(A), A);
    

    lista* B = lista_crear();
    jugador* a = crear_jugador("a", "Argentina", 6, 143);
    jugador* b = normalizar_jugador(Gino);
    jugador* c = crear_jugador("b", "Argentina", 6, 400);
    jugador* d= normalizar_jugador(Gino);
    insertar_ordenado(B, (void*)a, (tipo_funcion_cmp)&menor_jugador);
    insertar_ordenado(B, (void*)b, (tipo_funcion_cmp)&menor_jugador);
    insertar_ordenado(B, (void*)c, (tipo_funcion_cmp)&menor_jugador);
    insertar_ordenado(B, (void*)d, (tipo_funcion_cmp)&menor_jugador);
    seleccion* j = crear_seleccion("Argentina", altura_promedio(B), B);

    lista *listaDeSelecciones = lista_crear();
    insertar_ordenado(listaDeSelecciones, w, (tipo_funcion_cmp)menor_seleccion);
    insertar_ordenado(listaDeSelecciones, j, (tipo_funcion_cmp)menor_seleccion);


    lista_borrar(listaDeSelecciones, (tipo_funcion_borrar)borrar_seleccion);
    printf("OK\n");
    return 0;
}
void* hash_borrar(hash_t* hash, const char* clave) {
    if (!hash_pertenece(hash,clave)) return NULL;
    size_t posicion = fhash(clave,hash->tamanio);
    lista_iter_t* iter = lista_iter_crear(hash->tabla[posicion]);
    nodo_hash_t* nodo = lista_iter_ver_actual(iter);
    bool esta = false;
    while (!lista_iter_al_final(iter)) {
        if (strcmp(nodo->clave,clave) == 0) {
 	    esta = true;
	    break;
        }
        lista_iter_avanzar(iter);
        nodo = lista_iter_ver_actual(iter);
    }

    if (esta == false) {
	lista_iter_destruir(iter);
	return NULL;
    }
    nodo = (nodo_hash_t*)lista_borrar(hash->tabla[posicion],iter);
    void* dato = nodo->dato;
    free(nodo->clave);
    free(nodo);
    lista_iter_destruir(iter);
    hash->cantidad --;
    return dato;
}
Exemplo n.º 10
0
void listavacia() {
	  FILE* archivo = fopen("hola.out","a");
	  lista* l = lista_crear();
	  assert(l->primero == NULL);
	  lista_imprimir_f(l, archivo, (tipo_funcion_imprimir)&g);
	  lista_borrar(l,(tipo_funcion_borrar)&f);
	  fclose(archivo);
}
int p4a(){
    lista *l= lista_crear();
    lista *jugadores = lista_crear();
    seleccion *sel = crear_seleccion("hola", 21.0, jugadores);
    insertar_ordenado(l,sel,(tipo_funcion_cmp)&menor_seleccion);
    lista_imprimir(l,"p4a.txt",(tipo_funcion_imprimir)&imprimir_seleccion);
    lista_borrar(l,(tipo_funcion_borrar) &borrar_seleccion);
    return 0;
}
int eliminar_curso(char* idc,base_t* basedatos){
    int i;
    int pos = existe_curso(idc,basedatos->listadecursos);
    if (pos==-1) return -1;
    lista_iter_t* iterador = lista_iter_crear(basedatos->listadecursos);
    for(i=0;i<pos;i++) lista_iter_avanzar(iterador);
    destruir_curso((curso_t*)lista_borrar(basedatos->listadecursos,iterador));
    lista_iter_destruir(iterador);
    return 0;
}
Exemplo n.º 13
0
void listade1(void) {
	  lista* l = lista_crear();
	  jugador* j = crear_jugador("Ginobili", "Argentina", 5, 198);
	  nodo* n=nodo_crear(j);
	  //insertar_ordenado(l, (void*)Gino, (tipo_funcion_cmp)&menor_jugador);
	  insertar_ultimo(l, n);
	  lista_imprimir(l, "hola.out", (tipo_funcion_imprimir)&imprimir_jugador);
	  assert(((jugador*)l->primero->datos)->nombre == j->nombre);
	  lista_borrar(l,(tipo_funcion_borrar)&borrar_jugador);
}
int p2()
{
    char *nombre = "pepe";
    char *pais = "pepe";
    jugador *pepe = crear_jugador(nombre ,pais, 4 ,30);
    lista *l = lista_crear();
    insertar_ordenado(l,pepe,(tipo_funcion_cmp)&menor_jugador);
    lista_imprimir(l, "mitest.txt",(tipo_funcion_imprimir) &imprimir_jugador);
    lista_borrar(l,(tipo_funcion_borrar) &borrar_jugador);
    return 0;
}
int desinscribir(char* padron, char* idc, base_t* basedatos){
    int i,posicion;
    curso_t* curso = conseguir_curso(idc,basedatos->listadecursos);
    if (curso==NULL) return -1;
    posicion = alumno_inscripto(padron,curso->inscriptos);
    if (posicion==-1) return -2;
    lista_iter_t* iterador = lista_iter_crear(curso->inscriptos);
    for(i=0;i<posicion;i++) lista_iter_avanzar(iterador);
    destruir_inscripto((char*)lista_borrar(curso->inscriptos,iterador));
    lista_iter_destruir(iterador);
    return 0;
}
int p5(){

    char *nombre = "aaa";
    char *pais = "pepe";
    jugador *pepe = crear_jugador(nombre ,pais, 4 ,30);

    char *nombre2 = "aab";
    char *pais2 = "pepe";
    jugador *pepe2 = crear_jugador(nombre2 ,pais2, 4 ,30);

 
    char *nombre3 = "bbb";
    char *pais3 = "pepe2";
    jugador *pepe3 = crear_jugador(nombre3 ,pais3, 4 ,30);

    lista *l = lista_crear();

    insertar_ordenado(l,pepe,(tipo_funcion_cmp)&menor_jugador);
    insertar_ordenado(l,pepe2,(tipo_funcion_cmp)&menor_jugador);
    insertar_ordenado(l,pepe3,(tipo_funcion_cmp)&menor_jugador);

    lista *pop = mapear(l, (tipo_funcion_mapear)&normalizar_jugador);

    lista_imprimir(pop,"ultimoTest.txt",(tipo_funcion_imprimir)&imprimir_jugador);

    lista *l2 = filtrar_jugadores(l, (tipo_funcion_cmp)&pais_jugador,(void*) l->primero);

    assert(menor_jugador(l->primero->datos,l2->primero->datos) && menor_jugador(l2->primero->datos,l->primero->datos));

    lista_imprimir(l2,"swapsds",(tipo_funcion_imprimir)&imprimir_jugador);

    lista_borrar(pop,(tipo_funcion_borrar) &borrar_jugador);
    lista_borrar(l2,(tipo_funcion_borrar) &borrar_jugador);
    lista_borrar(l,(tipo_funcion_borrar) &borrar_jugador);
    return 0;
}
int sesion_deshacer(sesion_t* sesion){
    if (strcmp(sesion->padron,"00000")==0) return -1;
    if (lista_largo(sesion->inscripciones)==0) return -2;
    lista_iter_t* iteradordeprueba = lista_iter_crear(sesion->inscripciones);
    lista_iter_t* iteradorreal = lista_iter_crear(sesion->inscripciones);
    while(!lista_iter_al_final(iteradordeprueba)){
        lista_iter_avanzar(iteradordeprueba);
        if (!lista_iter_al_final(iteradordeprueba)) lista_iter_avanzar(iteradorreal);
    }
    destruir_inscripcion((inscripcion_t*)lista_borrar(sesion->inscripciones,iteradorreal));
    //destruir_inscripcion((inscripcion_t*)lista_borrar_primero(sesion->inscripciones));
    lista_iter_destruir(iteradordeprueba);
    lista_iter_destruir(iteradorreal);
    return 0;
}
int testJugadores()
{
    lista* A = lista_crear();
    jugador* Gino = crear_jugador("Ginobili", "Argentina", 6, 198);
    jugador* GinoPies = normalizar_jugador(Gino);
    insertar_ordenado(A, (void*)GinoPies, (tipo_funcion_cmp)&menor_jugador);
    borrar_jugador(Gino);
    Gino = A->primero->datos;
    printf("NORMALIZADO\n");
    printf("numero: %c \n",Gino->numero);
    printf("Nombre: %s \n",Gino->nombre);
    printf("Pais: %s \n",Gino->pais);
    printf("Altura: %u \n",(unsigned int)Gino->altura);
    lista_borrar(A, (tipo_funcion_borrar)&borrar_jugador);
    return 0;
}
Exemplo n.º 19
0
void hash_destruir(hash_t* hash) {
    for (int i = 0; i < hash->tamanio; i ++) {
	lista_iter_t* iter = lista_iter_crear(hash->tabla[i]);
	while (!lista_iter_al_final(iter)) {
	    nodo_hash_t* nodo = lista_borrar(hash->tabla[i],iter);
	    if (hash->destruir_dato) {
		hash->destruir_dato(nodo->dato);
	    }
	    free(nodo->clave);
	    free(nodo);
	}
	lista_iter_destruir(iter);
	lista_destruir(hash->tabla[i],NULL);
    }
    free(hash->tabla);
    free(hash);
}
Exemplo n.º 20
0
bool cancelar_pedido(vector_t * vectorzonas, char n[], int cantidad, int zona){
    pedido_t *auxpedido;

    lista_t* listaaux= (lista_t*) vector_obtener(vectorzonas, (zona-1));
    lista_iter_t *iter=lista_iter_crear(listaaux);
   
    while (lista_iter_al_final(iter)==false){
        auxpedido=(pedido_t*)(lista_iter_ver_actual(iter));
        if ( ( (strcmp (auxpedido->nombre,n)==0)) && auxpedido->cantidad==cantidad){
            printf("Se borro el pedido, %s",auxpedido->nombre);
            lista_borrar(listaaux, iter);
            return true;
            }
        lista_iter_avanzar(iter);
        }
   
    return false;
    }
Exemplo n.º 21
0
void listademas(void) {
	  lista* l = lista_crear();
	  jugador* j1 = crear_jugador("Ginobili", "Argentina", 5, 198);
	  jugador* j2 = crear_jugador("Scola", "Argentina", 6, 190);
	  jugador* j3 = crear_jugador("Prigioni", "Argentina", 7, 190);
	  jugador* j4 = crear_jugador("Ginobili", "Argentina", 9, 199);
	  jugador* j5 = crear_jugador("Ginobili", "Argentina", 10, 202);

	  insertar_ordenado(l, (void*)j1, (tipo_funcion_cmp)&h); //j1
	  insertar_ordenado(l, (void*)j2, (tipo_funcion_cmp)&h); //j2->j1 (estoy usando h, que me da que es menor)
	  insertar_ordenado(l, (void*)j3, (tipo_funcion_cmp)&menor_jugador); //j3->j2->j1
	  insertar_ordenado(l, (void*)j4, (tipo_funcion_cmp)&menor_jugador); //j4->j3->j2->j1
	  insertar_ordenado(l, (void*)j5, (tipo_funcion_cmp)&menor_jugador); //j4->j5->j3->j2->j1

	  assert(((jugador*)l->primero->datos)->altura == j4->altura); 

	  lista_imprimir(l,"hola.out", (tipo_funcion_imprimir)&imprimir_jugador);
	  lista_borrar(l,(tipo_funcion_borrar)&borrar_jugador);
}
int p3()
{
    char *nombre = "aaa";
    char *pais = "pepe";
    jugador *pepe = crear_jugador(nombre ,pais, 4 ,30);
    lista *l = lista_crear();
    char *nombre2 = "bbb";
    char *pais2 = "pepe";
    jugador *pepe2 = crear_jugador(nombre2 ,pais2, 4 ,30);
    char *nombre3 = "aaa";
    char *pais3 = "pepe";
    jugador *pepe3 = crear_jugador(nombre3 ,pais3, 4 ,30);
    insertar_ordenado(l,pepe,(tipo_funcion_cmp)&h);
    insertar_ordenado(l,pepe2,(tipo_funcion_cmp)&h);
    insertar_ordenado(l,pepe3,(tipo_funcion_cmp)&h);
    assert(l->primero->sig->sig->datos == pepe);
    lista_borrar(l,(tipo_funcion_borrar) &borrar_jugador);
    return 0;
}
int p4b(){
    lista *jugadores = lista_crear();
    lista *l = lista_crear();

    char *nombre = "aaa";
    char *pais = "pepe";
    jugador *pepe = crear_jugador(nombre ,pais, 4 ,30);
    
    char *nombre2 = "bbb";
    char *pais2 = "pepe";
    jugador *pepe2 = crear_jugador(nombre2 ,pais2, 4 ,30);

    insertar_ordenado(jugadores,pepe,(tipo_funcion_cmp)&h);
    insertar_ordenado(jugadores,pepe2,(tipo_funcion_cmp)&h);

    seleccion *sel = crear_seleccion("hola", 21.0, jugadores);
    insertar_ordenado(l,sel,(tipo_funcion_cmp)&menor_seleccion);
    lista_imprimir(l,"testSeleccion.txt",(tipo_funcion_imprimir)&imprimir_seleccion);
    lista_borrar(l,(tipo_funcion_borrar) &borrar_seleccion);
    return 0;
}
Exemplo n.º 24
0
hash_t* hash_redimensionar(hash_t* hash, size_t tamanio) {
    lista_t** nueva_tabla = creacion_tabla(hash,tamanio);
    if (nueva_tabla == NULL) return NULL;
    for (int i = 0; i < hash->tamanio; i ++) {
        lista_iter_t* iter = lista_iter_crear(hash->tabla[i]);
        const char* clave;
        size_t posicion;
        nodo_hash_t* nodo;
        while (!lista_iter_al_final(iter)) {
            nodo = lista_borrar(hash->tabla[i],iter);
	    clave = nodo->clave;
	    posicion = fhash(clave,tamanio);
	    lista_insertar_primero(nueva_tabla[posicion],nodo);
        }
        lista_destruir(hash->tabla[i],NULL);
	lista_iter_destruir(iter);
    }

    free(hash->tabla);
    hash->tamanio = tamanio;
    hash->tabla = nueva_tabla;
    return hash;
}
Exemplo n.º 25
0
void enviar(vector_t * vectorzonas, pila_t* pila){

	lista_iter_t *iter,*iterborrar;
	bool primeroencontrado;
	int i,canti,cantf,total;
	pedido_t *pedidoaux,*primerpedido,*pedidof;
	lista_t* listaaux;
	for (i=0;i<vector_obtener_cantidad(vectorzonas);i++){
			primeroencontrado=true;

			while(primeroencontrado)
			{
				primeroencontrado=false;
				canti=0;
				cantf=0;
				total=0;
				pedidof=NULL;

				listaaux= (lista_t*) vector_obtener(vectorzonas, i);
				iter=lista_iter_crear(listaaux);

				while ( !lista_iter_al_final(iter) )
				{

					pedidoaux=(pedido_t*) (lista_iter_ver_actual(iter));
					if (pedidoaux !=NULL)
					{
						if ( (!primeroencontrado) && (pedidoaux->preparado))
						{
							primerpedido=pedidoaux;                  //primer pedido es el primer pedido preparado de esa zona
							canti=pedidoaux->cantidad;
							primeroencontrado=true;
						}
						else if (pedidoaux->preparado)
						{
							cantf=pedidoaux->cantidad;
							if ( ((canti + cantf)<=5) && ((canti+cantf)>total) )
							{
								pedidof=pedidoaux;
								total=canti+cantf;
							}
						}
					}
					lista_iter_avanzar(iter);
				}
				lista_iter_destruir(iter);
				if ( (primeroencontrado) && (pedidof!=NULL))
					printf("Se envio el pedido %s junto con el pedido %s \n",primerpedido->nombre,pedidof->nombre);
				else  if (primeroencontrado){
					printf("Se envio el pedido %s \n",primerpedido->nombre);
				}
				iterborrar=lista_iter_crear(listaaux);
				while (!lista_iter_al_final(iterborrar))
				{
					if ( primerpedido==lista_iter_ver_actual(iterborrar) )
					{
						pila_apilar(pila,primerpedido);
						lista_borrar(listaaux,iterborrar);
					}
					else{
						if (pedidof==lista_iter_ver_actual(iterborrar))
							{
								pila_apilar(pila,pedidof);
								lista_borrar(listaaux,iterborrar);
							}
						else lista_iter_avanzar(iterborrar);
					}
				}
				lista_iter_destruir(iterborrar);

			}
	}

}
Exemplo n.º 26
0
int main(int argc, char *argv[])
{
    Producto producto;

    int indice, i;
    char resp = 's';

    lista_borrarLista();


    while(resp != 'n')
    {
        printf("\nIngrese el codigo: ");
        scanf("%d", &producto.codigo);
        fflush(stdin);

        printf("\nIngrese el precio: ");
        scanf("%f", &producto.precio);
        fflush(stdin);

        printf("\nIngrese la posicion en la lista: ");
        scanf("%d", &indice);
        fflush(stdin);

        if(lista_setProducto(&producto, indice) == 0)
            printf("\nError\n");
        else
            printf("\nProducto cargado\n");

        printf("\nDesea seguir ingresando productos? s/n: ");
        scanf("%c", &resp);
        fflush(stdin);

    }

    printf("\n\nPrecio mas alto de la lista: ");
    printf("\nCodigo\tPrecio");

    producto = *(lista_getMasCaro());

    printf("\n%d\t%.2f", producto.codigo, producto.precio);



    printf("\n\nBorra un producto, introduce un indice: ");
    scanf("%d", &indice);

    if(lista_borrar(&miProducto[indice]) == 0)
        printf("\nError");

    else
        printf("\nProducto borrado");



    printf("\n\nObtener un producto, ingrese el indice: ");
    scanf("%d", &indice);

    if(lista_getProducto(indice) == 0)
        printf("\nError");

    else
    {
        producto = *(lista_getProducto(indice));

        printf("\n\nCodigo\tPrecio");
        printf("\n%d\t%.2f", producto.codigo, producto.precio);
    }


    printf("\n\n\nLista completa: ");
    printf("\n\nCodigo\tPrecio");

    for(i = 0; i < TAMANIO; i++)
    {

        if(miProducto[i].flagLibre == 0)
            printf("\n%d\t%.2f\n", miProducto[i].codigo, miProducto[i].precio);
    }

    printf("\n\nBorrar Lista");

    lista_borrarLista();

    printf(" \n\nLista borrada");




    return 0;
}
Exemplo n.º 27
0
/* Pruebas */
void prueba_tipos() {

	// Declaro de variables
	lista_iter_t *iter;
	lista_t* lista;
	alumno_t* alumno1;
	alumno_t* alumno2;
	alumno_t* alumno3;
	int padron1=94111;
	int padron2=77777;
	int padron3=10104;

	// las inicializo
	lista = lista_crear();
	alumno1=alumno_crear(padron1);
	alumno2=alumno_crear(padron2);
	alumno3=alumno_crear(padron3);

	printf("---------------------------PRUEBAS---------------------------\n");

	//pruebo que este vacia
	print_test("Pruebo que la lista se crea vacía", lista_esta_vacia(lista) );

	//inserto 1er elemento
	print_test("Inserto primer elemento alumno1", lista_insertar_primero(lista,alumno1) );

	//inserto ultimo
	print_test("Inserto ultimo elemento alumno2", lista_insertar_ultimo(lista,alumno2) );

	//inesrto un nuevo ultimo
	print_test("Inserto ultimo elemento alumno3", lista_insertar_ultimo(lista,alumno3) );

	//veo el primero
	print_test("Veo el primer elemento(alumno1)", alumno1==lista_ver_primero(lista));

	//borro el primero y veo devuelta
	print_test("Borro el primero", lista_borrar_primero(lista));
	print_test("Veo el primer elemento(alumno2)", alumno2==lista_ver_primero(lista));

	//veo el largo de la lista
	print_test("Veo el largo de la lista (2)", 2==lista_largo(lista));

	//creo iterador
	iter= lista_iter_crear(lista);

	//pruebas del iterador
	print_test("Hago avanza al iterador", lista_iter_avanzar(iter));
	print_test("Veo elemento actual del iterador (alumno3)", alumno3==lista_iter_ver_actual(iter));
	print_test("Hago avanza al iterador", lista_iter_avanzar(iter));
	print_test("Veo si esta al final", lista_iter_al_final(iter));

	//pruebas de lista junto con iterador
	print_test("Inserto de nuevo alumno1", lista_insertar(lista,iter,alumno1));
	print_test("Lo borro", alumno1==lista_borrar(lista,iter));

	//inserto 1er elemento
	print_test("Inserto primer elemento alumno1", lista_insertar_primero(lista,alumno1) );
	//destruyo el iterador
	lista_iter_destruir(iter);
	//creo iterador
	iter= lista_iter_crear(lista);
	print_test("Destruyo iterador,lo creo devuelta y borro el primer elemento (alumno1)", alumno1==lista_borrar(lista,iter));
	destruir_dato(alumno1);
	//destruyo lista e iterador
	lista_iter_destruir(iter);
	lista_destruir(lista,destruir_dato);

}
Exemplo n.º 28
0
void lista_prueba(){
	
	//Pruebo crear listas
	lista_t* lista1 = lista_crear();
	lista_t* lista2 = lista_crear();
	lista_t* lista3 = lista_crear();
	
	print_test("Probando si lista1 se creo bien", lista1!=NULL);
	print_test("Probando si lista1 esta vacia", lista_esta_vacia(lista1));
	print_test("Probando si el largo de lista2 es 0", lista_largo(lista2)==0);
	
	int vector[]={ 1, 2, 3, 4};
	char vector2[]="hola que tal";
	
	// Probando insertar en la lista;
	
	print_test("Probando si se inserta al principio un elemento en la lista1", lista_insertar_primero(lista1, &vector));
	print_test("Probando si se inserta al final un elemento en la lista1", lista_insertar_ultimo(lista1, &vector2));
	
	// Probando el largo de la lista con 2 elementos
	
	print_test("Probando que el largo de la lista1 sea dos", lista_largo(lista1)==2);
	
	// Probando el lista borrar primero en la lista 1
	
	print_test("Probando si se borra el primer elemento en la lista1", lista_borrar_primero(lista1) == vector);
	
	// Probando el lista ver primero
	
	print_test("Probando ver el primero de la lista 1", lista_ver_primero(lista1) == vector2 );
	
	// Probando agregar al principio en lista 3
	
	print_test("Probando si se inserta al principio un elemento en la lista3", lista_insertar_primero(lista3, &vector));
	
	lista_insertar_ultimo(lista3, &vector2);
	
	// PRUEBAS CON EL ITERADOR CON LA LISTA 3
	
	lista_iter_t* iter = lista_iter_crear(lista3);
	
	// Probando el iter avanzar
	
	print_test("Probando el iter avanzar", lista_iter_avanzar(iter));

	//  Probando el iter ver actual
	
	print_test("Probando el iter ver actual", lista_iter_ver_actual(iter) == vector2);
	
	// Probando el iter al final
		
	print_test("Probando el iter avanzar", lista_iter_avanzar(iter));
	print_test("Probando el iter avanzar (no puede avanzar mas)", lista_iter_avanzar(iter) == false);

	print_test("Probando el iter al final", lista_iter_al_final(iter));
	print_test("Probando si el iter esta el final el ver_actual", lista_iter_ver_actual(iter) == NULL); 
	
	lista_iter_destruir(iter);
	
	// Probando lista_insertar con iterador
	
	lista_iter_t* iter2 = lista_iter_crear(lista2);
	
	char vector3[]="chau";
	
	print_test("Probando el lista_insertar en la lista con el iter", lista_insertar(lista2,iter2,&vector3));
	print_test("Probando ver el primero de la lista2", lista_ver_primero(lista2) == &vector3 );
	print_test("Probando borrar con el iter", lista_borrar(lista2,iter2) == vector3 );
	print_test("Probando el lista_ver_primero con los nodos borrados", lista_ver_primero(lista2) == NULL );
	print_test("Probando el largo de una lista vacia", lista_largo(lista2) == 0 );
	print_test("Probando el lista_borrar_primero en una lista vacia", lista_borrar_primero(lista2) == NULL );
	
	lista_iter_destruir(iter2);
	
	// Pruebo Agregar 30 Datos y luego borrarlos
	
	for ( int i=0 ; i < 30 ; i++){
		lista_insertar_ultimo(lista2, &i);
	}
	print_test("Probando el largo de la lista2 luego de agregar 30 elementos", lista_largo(lista2) == 30);
	
	lista_iter_t* iter3=lista_iter_crear(lista2);
	
	while (!lista_iter_al_final(iter3)){
		lista_borrar(lista2,iter3);
	}
	
	print_test("Probando que se borraron todos los elementos" , lista_largo(lista2) == 0);
	print_test("Prubando borrar un elemento en una lista vacia" , lista_borrar(lista2,iter3) == NULL);
	
	lista_iter_destruir(iter3);
	
	//Finalmente, pruebo si estan vacias las 3 listas
	
	print_test( "Probando que la lista1 no este vacia", lista_esta_vacia(lista1) == false );
	print_test( "Probando que la lista2 este vacia", lista_esta_vacia(lista2) );
	print_test( "Probando que la lista3 no este vacia", lista_esta_vacia(lista3) == false );
	
	//Elimino las 3 listas
	
	lista_destruir(lista1, NULL);
	lista_destruir(lista2, NULL);
	lista_destruir(lista3, NULL);
	
	/* ******************************************************************
	*               Pruebas con lista 4
	* *****************************************************************/
	
	//Creo otra lista y le inserto 10 nodos
	
	lista_t* lista4 = lista_crear();
	
	for( int num=1; num <= 10 ; num++){
		int elemento=1;
		lista_insertar_ultimo(lista4 , &elemento);
	}
	
	print_test("Probando largo de la lista 4", lista_largo(lista4) == 10 );
	
	lista_iter_t* iter4= lista_iter_crear(lista4);
	
	print_test("Probando que se creo el iter 4", iter4!=NULL);
	
	print_test("Probando que el iter 4 no este al final", lista_iter_al_final(iter4) == false);
	
	for (int j=1; j<=10; j++){
		lista_iter_avanzar(iter4);
	}
		
	print_test("Probando que el iter 4 este al final", lista_iter_al_final(iter4));
	
	char prueba[] = "prueba";
	
	print_test("Probando lista_insertar con el iter al final ", lista_insertar(lista4, iter4, &prueba));
	
	print_test("Probando que el iter 4 no este al final", lista_iter_al_final(iter4) == false);
	
	print_test("Probando avanzar con el iter 4 al final", lista_iter_avanzar(iter4));
	
	print_test("Probando lista_borrar con el iter 4 al final", lista_borrar(lista4,iter4) == NULL);
	
	print_test("Probando lista_insertar con el iter 4 al final ", lista_insertar(lista4, iter4, &prueba));
	
	print_test("Probando lista_borrar con el iter 4", lista_borrar(lista4,iter4) == prueba);
	
	for (int j=0; j<=10; j++){
		lista_borrar_primero(lista4);
	}
	
	print_test("Probando largo de la lista 4", lista_largo(lista4) == 0 );

	// elimino el iter 4
	
	lista_iter_destruir(iter4);


	//Elimino la lista
	
	lista_destruir(lista4, free);
	
	
	
	/* ******************************************************************
	*               Pruebas con lista 5
	* *****************************************************************/
	
	//Creo otra lista y le inserto 10 nodos
	
	lista_t* lista5 = lista_crear();
	
	// le creo un iter
	
	lista_iter_t* iter5= lista_iter_crear(lista5);
	
	print_test("Probando que se creo el iter 5", iter5!=NULL);
	
	for( int num=1; num <= 10 ; num++){
		char elemento2[]="hola";
		lista_insertar(lista5, iter5, &elemento2);
	}
	
	print_test("Probando largo de la lista 5", lista_largo(lista5) == 10 );
	
	print_test("Probando que el iter 5 no este al final", lista_iter_al_final(iter5) == false);
	
	char prueba2[] = "prueba";
	
	print_test("Probando lista_borrar con el iter 5 al principio", lista_borrar(lista5,iter5) != NULL);
	
	print_test("Probando lista_insertar con el iter 5 al principio", lista_insertar(lista5, iter5, &prueba2));
	
	print_test("Probando lista_borrar con el iter 5 ", lista_borrar(lista5,iter5) == prueba2);
	
	for (int j=0; j<=10; j++){
		lista_borrar(lista5, iter5);
	}
	
	print_test("Probando largo de la lista 5", lista_largo(lista5) == 0 );
	
	print_test("Probando que la lista 5 este vacia", lista_esta_vacia(lista5));
	
	print_test("Probando lista ver_primero de la lista 5", lista_ver_primero(lista5) == NULL);
	
	print_test("Probando avanzar con el iter 5 al final", lista_iter_avanzar(iter5) == false);
	
	print_test("Probando avanzar con el iter 5 al final", lista_iter_ver_actual(iter5) == NULL);
	
	
	// elimino el iter 5
	lista_iter_destruir(iter5);
	
	//Elimino la lista
	lista_destruir(lista5, free);


	/* ******************************************************************
	*               Pruebas con lista 6
	* *****************************************************************/
		
	// Creo una nueva Lista
		
	lista_t* lista6 = lista_crear();
	
	// le creo un iter
	
	lista_iter_t* iter6= lista_iter_crear(lista6);
	
	print_test("Probando que se creo el iter 6", iter6!=NULL);
	
	
	void* elemento = malloc(sizeof(void*)) ;
	
	print_test("Probando agregar un elemento con lista_insertar con la lista 6 vacia", lista_insertar(lista6, iter6, elemento));
	
	print_test("Probando largo de la lista 6", lista_largo(lista6) == 1 );
	
	print_test("Probando que el iter 6 no este al final", lista_iter_al_final(iter6) == false);
	
	print_test("Probando si puedo avanzar con el iter 6", lista_iter_avanzar(iter6));
	
	print_test("Probando que el iter 6 este al final", lista_iter_al_final(iter6));
		
	void* borrar=lista_borrar_primero(lista6);
	free(borrar);
	
	// elimino el iter 6
	
	lista_iter_destruir(iter6);

	//Elimino la lista 6
	
	lista_destruir(lista6, free);
	
	/* ******************************************************************
	*               Pruebas con lista 7
	* *****************************************************************/
	
	lista_t* lista7 = lista_crear();
	
	
	
	for (int x=1 ; x<=10 ; x++){
		lista_insertar_primero(lista7, &x);
	}
	
	lista_iter_t* iter7 = lista_iter_crear(lista7);
	
	print_test("Probando que el largo de la lista7 sea 10", lista_largo(lista7) == 10);
	
	while (!lista_iter_al_final(iter7)){
		lista_iter_avanzar(iter7);
	}
	
	void* y;
	
	print_test("Probando si se puede ver el elemento actual del iter", lista_iter_ver_actual(iter7) == NULL);
	print_test("Probando insetar un elemento al final de la lista7", lista_insertar(lista7, iter7, &y));
	print_test("Probando que el largo de la lista7 sea 11", lista_largo(lista7) == 11);
	print_test("Probando borrar el ultimo elemento de lista7", lista_borrar(lista7,iter7) == &y);
	print_test("Probando que el largo de la lista7 sea 10", lista_largo(lista7) == 10);
	print_test("Probando insetar un elemento al final de la lista7", lista_insertar(lista7, iter7, &y));
	print_test("Probando que el iter7 no quede al final", lista_iter_al_final(iter7) == false);
	
	
	lista_iter_destruir(iter7);
	lista_destruir(lista7, NULL);

	/* ******************************************************************
	*               Pruebas con lista 8
	* *****************************************************************/

	lista_t* lista8 = lista_crear();
	
	for (int x=1 ; x<=5 ; x++){
		lista_insertar_ultimo(lista8, &x);
	}
	print_test("Probando que el largo de la lista8 sea 5", lista_largo(lista8) == 5);
	
	lista_iter_t* iter8 = lista_iter_crear(lista8);
	
	int elem=0;
	print_test("Probando que el elemento actual del iter8 no es null", lista_iter_ver_actual(iter8) != NULL);
	print_test("Probando insertar al principio con el iter en lista8", lista_insertar(lista8, iter8, &elem));
	print_test("Probando que el largo de lista8 sea 6", lista_largo(lista8) == 6);
	print_test("Probando eliminar el primer elemento de la lista8 con el iter", lista_borrar(lista8, iter8) == &elem);
	print_test("Probado que el largo de la lista8 es 5", lista_largo(lista8) == 5);
	print_test("Probando insertar un elemento en la primera posicion de lista8", lista_insertar_primero(lista8, &elem));
	print_test("Probando que el actual del iter8 sea distinto que el primero de lista8", lista_ver_primero(lista8) != lista_iter_ver_actual(iter8));
	
	lista_iter_destruir(iter8);
	lista_destruir(lista8 , NULL);
	
	/* ******************************************************************
	*               Pruebas con lista 9
	* *****************************************************************/
	
	lista_t* lista9 = lista_crear();
	
	int num;
	
	print_test("Probando insertar el elemento en la lista9", lista_insertar_primero(lista9, &num));
	print_test("Probando que el largo de lista9 es 1", lista_largo(lista9));
	
	lista_iter_t* iter9 = lista_iter_crear(lista9);
	
	print_test("Probando que el elemento actual del iter9 no es null", lista_iter_ver_actual(iter9) != NULL);
	print_test("Probando borrar el elemento de lista9 con el iter", lista_borrar(lista9, iter9) == &num);
	print_test("Probando que el largo de lista9 es 0", lista_largo(lista9) == 0);
	print_test("Probando borrar un elemento de la lista9 que esta vacia", lista_borrar(lista9, iter9) == NULL);
	print_test("Probando avanzar en lista9 que esta vacia", lista_iter_avanzar(iter9) == false);
	print_test("Probando agregar un elemento con el iter9", lista_insertar(lista9, iter9, &num));
	print_test("Probando eliminar el ultimo elemento con el iter9", lista_borrar(lista9, iter9) == &num);
	print_test("Probando agregar un elemento en la lista9", lista_insertar_primero(lista9, &num));
	print_test("Probando eliminar el ultimo elemento con borrar primero", lista_borrar_primero(lista9) == &num);
	
	
	lista_iter_destruir(iter9);
	lista_destruir(lista9 , NULL);	
	
	lista_t* lista10= lista_crear();
	
	int i=0;
	
	print_test("Probando agregar un elemento a lista10", lista_insertar_primero(lista10 , &i));
	print_test("Probando eliminar primer elemento", lista_borrar_primero(lista10) != NULL);
	
	lista_destruir(lista10, NULL);
	
	

	
}
Exemplo n.º 29
0
int main(void) {
	// COMPLETAR AQUI EL CODIGO
/*
trie *t = trie_crear();
trie_agregar_palabra(t,"gato");
trie_agregar_palabra(t,"auto");
trie_agregar_palabra(t,"automata");
trie_agregar_palabra(t,"autor");
trie_agregar_palabra(t,"gorrion");
trie_agregar_palabra(t,"autora");
trie_agregar_palabra(t,"n***a");
trie_agregar_palabra(t,"fuah");
trie_agregar_palabra(t,"asdjgljsdkg");
trie_agregar_palabra(t,"topcucurrucu");
trie_agregar_palabra(t,"apepepsdf");
trie_agregar_palabra(t,"faspl");
trie_agregar_palabra(t,"zsjgiojds");
trie_agregar_palabra(t,"djgojsgs");
trie_agregar_palabra(t,"mememoforks");
*/
trie *t2 = trie_construir("./test.txt");
trie_imprimir(t2, "./test.txt");
/*

char *larga= (char*)malloc(1080);
int i;
for(i=0;i<1079;i++) {
	larga[i] = 'a';
}
larga[i] = 0;
trie_agregar_palabra(t,larga);

int longit = contar(larga);
printf("larga = %d\n",longit);

listaP *sth = palabras_con_prefijo(t, "au");

double sum = peso_palabra("gato") + peso_palabra("auto") + peso_palabra("automata") + peso_palabra("autor") + peso_palabra("gorrion") +peso_palabra("autora") + peso_palabra(larga) ;
*/
double (*funct)(char*);
funct = peso_palabra;
/*
double res = trie_pesar(t, funct);
double res2 = sum /(double) 7 ;

printf("PESO TRIE:  %f \n", res);
printf("PESO TRIE c:  %f \n", res2);




trie_imprimir(t, "./test.txt");
*/


double res3 = trie_pesar(t2, funct);
printf("PESO TRIE:  %f \n", res3);
listaP *s = predecir_palabras(t2, "92");

//free(larga);
//lista_borrar(sth);
lista_borrar(s);
//trie_borrar(t);
trie_borrar(t2);
    return 0;
}