예제 #1
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);
}
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;
}