PI-ITBA / 2024_02

Consultas 2C 2024
4 stars 0 forks source link

TP11ej10 #137

Open bleite12 opened 1 week ago

bleite12 commented 1 week ago

Hola, como estan? estoy teniendo un problema con esta funcion en el ejercicio 11. es la que me esta dando problemas para pasar los asserts.

unsigned int delete(bagADT bag, elemType elem){

    return deleteRecursiva(bag->first, elem, bag->cmp);

}

int deleteRecursiva(TList l, elemType elem, compare comp){
    if( l == NULL ){
        return 0;
    }
    int c;

    if((c = comp(l->head , elem)) > 0){
        return 0;
    }

    if( c < 0 ){
        return deleteRecursiva(l->tail, elem, comp);
    }

    TList aux = l;
    int CountAux = l->reps;
    l = l->tail;
    free(aux);
    return CountAux;

}
marcelogarberoglio commented 1 week ago

Cuando hacés l = l->tail; sólo cambiás la variable local l, que en vez de apuntar al primero apunte al segundo. Pero da lo mismo si no ponés esa línea, ya que después l no se usa Tendría que ser como el delete de listas, que retorna la nueva lista Y por otro lado, asumiendo que l->reps es la cantidad de veces que se repite el mismo elemento, no estás restando 1 a esa cantidad.