Exemple #1
0
void pruebas_heap_alumno(){

	heap_t* heap = heap_crear(func_comp);	
	print_test("El heap esta vacio", heap_esta_vacio(heap));
	print_test("Ver max del heap es NULL", heap_ver_max(heap) == NULL);
	int a = 5, b = 6, c = 8, d = 7, e = 10;
	print_test("Encolo el primer elemento (a)",heap_encolar(heap, &a));
	print_test("El maximo del heap es a ",heap_ver_max(heap) == &a);
	print_test("Encolo el segundo elemento (b)", heap_encolar(heap,&b));
	print_test("El maximo del heap es el segundo elemento (b): ", heap_ver_max(heap) == &b);
	
	print_test("La cantidad del heap es 2", heap_cantidad(heap) == 2);
	print_test("Encolo el tercer elemento (c): ", heap_encolar(heap,&c));
	
	print_test("El maximo del heap es el tercer elemento (c)", heap_ver_max(heap) == &c);
	print_test("Encolo el cuarto elemento (d) ", heap_encolar(heap,&d));
	
	print_test("El maximo del heap sigue siendo el tercer elemento (c)", heap_ver_max(heap) == &c);
	print_test("La cantidad del heap es 4", heap_cantidad(heap) == 4);
	print_test("Encolo el quinto elemento (e) ", heap_encolar(heap, &e));
	print_test("El maximo del heap es el quinto elemento", heap_ver_max(heap) == &e);
	print_test("Desencolo", heap_desencolar(heap) == &e);
	print_test("Desencolo", heap_desencolar(heap) == &c);
	print_test("Desencolo", heap_desencolar(heap) == &d);
	print_test("Desencolo", heap_desencolar(heap) == &b);
	print_test("Desencolo", heap_desencolar(heap) == &a);
	print_test("El heap esta vacio", heap_esta_vacio(heap));

	//pruebas_heapify();
	//pruebas_heapsort();
	//pruebas_heap_crear_arr();
	heap_destruir(heap,NULL);
}
Exemple #2
0
void pruebas_volumen(void){
    printf("PRUEBAS DE VOLUMEN:\n");
    heap_t* heap=heap_crear(int_cmp);
    int elementos[1000][1];
    bool ok=true;
    for(int i=0;i<1000;i++){
        *elementos[i]=i;
        if(!(ok=heap_encolar(heap,elementos[i]))){
            break;
        }
    }
    print_test("Se encolaron todos los elementos..",ok);
    print_test("Longitud correcta...",heap_cantidad(heap)==1000);
    print_test("Ver max correcto...",heap_ver_max(heap)==elementos[999]);
    for(int i=999;i>=0;i--){
        int* elemento=heap_desencolar(heap);
        if(!(ok=(*elemento==i))){
            break;
        }
    }
    print_test("Los elementos se desencolaron en orden...",ok)
    print_test("Longitud correcta...",heap_cantidad(heap)==0);
    print_test("Ver max correcto...",heap_ver_max(heap)==NULL);
    heap_destruir(heap,NULL);
}
Exemple #3
0
void pruebas_heap_vacio(void){
    heap_t* heap=heap_crear(int_cmp);
    print_test("Heap vacío...",heap_cantidad(heap)==0);
    print_test("Ver max es NULL...",heap_ver_max(heap)==NULL);
    print_test("Desencolar es NULL...",heap_desencolar(heap)==NULL);
    heap_destruir(heap,NULL);
}
Exemple #4
0
heap_t *heapify(void *elementos[], size_t cant,  cmp_func_t cmp) {

	heap_t* heap_aux=heap_crear(cmp);
	int i;
	for (i=0; i<cant;i++){
			heap_encolar(heap_aux, elementos[i]);
	}
	return heap_aux;
}
Exemple #5
0
void pruebas_enteros(void){
    heap_t* heap=heap_crear(int_cmp);
    printf("ELEMENTOS ORDENADOS:\n");
    int elementos[10]={0,1,2,3,4,5,6,7,8,9};
    bool ok=true;
    for(int i=0;i <10;i++){
        if(!(ok=heap_encolar(heap,&elementos[i]))){
            break;
        }
    }
    print_test("Se encolaron todos los elementos..",ok);
    print_test("Longitud correcta...",heap_cantidad(heap)==10);
    print_test("Ver max correcto...",heap_ver_max(heap)==&elementos[9]);
    for(int i=9;i>=0;i--){
        int* elemento=heap_desencolar(heap);
        if(!(ok=(*elemento==i))){
            break;
        }
    }
    print_test("Los elementos se desencolaron en orden...",ok)
    print_test("Longitud correcta...",heap_cantidad(heap)==0);
    print_test("Ver max correcto...",heap_ver_max(heap)==NULL);

    printf("ELEMENTOS DESORDENADOS:\n");
    int e_desordenados[10]={9,4,6,2,7,5,8,3,1,0};
    for(int i=0;i<10;i++){
        if(!(ok=heap_encolar(heap,&e_desordenados[i]))){
            break;
        }
    }
    print_test("Se encolaron todos los elementos..",ok);
    print_test("Longitud correcta...",heap_cantidad(heap)==10);
    print_test("Ver max correcto...",heap_ver_max(heap)==&elementos[9]);
    for(int i=9;i>=0;i--){
        int* elemento=heap_desencolar(heap);
        if(!(ok=(*elemento==i))){
            break;
        }
    }
    print_test("Los elementos se desencolaron en orden...",ok)
    print_test("Longitud correcta...",heap_cantidad(heap)==0);
    print_test("Ver max correcto...",heap_ver_max(heap)==NULL);
    heap_destruir(heap,NULL);
}
base_t *base_crear(){
    //creo la base
    base_t* base = malloc(sizeof(base_t));
    if (base == NULL) return NULL;
    //creo los componentes de la base
    base->mapa = grafo_crear();
    base->fabricas = hash_crear((hash_destruir_dato_t)destruir_fabrica);
    base->cerradofabricas = heap_crear((cmp_func_t)fabrica_cierra_primero);
    base->fabricasavisitar = lista_crear();
    //verifico si los componentes se crearon correctamente
    if ((base->mapa==NULL) || (base->fabricas==NULL) || (base->cerradofabricas==NULL) || (base->fabricasavisitar==NULL)){
        if (base->mapa!=NULL) grafo_destruir(base->mapa);
        if (base->cerradofabricas!=NULL) heap_destruir(base->cerradofabricas,NULL);
        if (base->fabricasavisitar!=NULL) lista_destruir(base->fabricasavisitar,NULL);
        if (base->fabricas!=NULL) hash_destruir(base->fabricas);
        return NULL;
    }
    base->capacidad = 0;
    base->polonorte = 0;
    //todo exitoso
    return base;
}