3. Implemente las funciones agregarVisitaDiaTHashVisitaDia e imprimirTHashVisitaDia.

3. Implemente las funciones agregarVisitaDiaTHashVisitaDia e imprimirTHashVisitaDia.

de Manuel Freire -
Número de respuestas: 8

Dudas sobre la parte 3

En respuesta a Manuel Freire

Re: 3. Implemente las funciones agregarVisitaDiaTHashVisitaDia e imprimirTHashVisitaDia.

de Martín Fossatti Valetti -
La precondición de agregarVisitaDiaHash es contradictoria con la descripción de la función, no tiene sentido que deba agregar a la lista al principio si para poder usar la función no debe haber ningún elemento en la lista

Agrega una visita dia a la estructura, insertando en la posición
brindad por la función de hash (utilizando la fecha de la visitaDia). Si ya existe una visitaDia
en dicha posición del hash, la agrega a dicha lista, insertando adelante.
La función es O(1) peor caso.
PRE: no existe una visitaDia con la misma fecha en la estructura.
En respuesta a Martín Fossatti Valetti

Re: 3. Implemente las funciones agregarVisitaDiaTHashVisitaDia e imprimirTHashVisitaDia.

de Federico Rivero -
Hola Martín!

No es contradictoria. Pueden existir varios elementos en la mismoa posición de la tabla con diferentes fechas. Dependerá de la suerte de lo que devuelva la función de hash.

Saludos,
Federico
En respuesta a Federico Rivero

Re: 3. Implemente las funciones agregarVisitaDiaTHashVisitaDia e imprimirTHashVisitaDia.

de Rafael Sotuyo Milicua -

Buenas,

Por alguna extraña razón, cuando pido ejecutar funciones de liberar (liberarTFecha y liberarTVisitaDia) dentro de el hashVisitaDia.cpp
Las funciones no se ejecutan, lo comprobé cuando añadí un printf a la ejecución del liberarTVisitaDia y que además si le daba a imprimirHashVisitaDia seguian ahí los elementos. ¿Existe alguna explicación para esto?




En respuesta a Rafael Sotuyo Milicua

Re: 3. Implemente las funciones agregarVisitaDiaTHashVisitaDia e imprimirTHashVisitaDia.

de Federico Rivero -
Dejando de lado errores de programación, estás ejecutando 'make clean' previamente para estar seguro de que estás compilando tus cambios?

Saludos,
Federico
En respuesta a Manuel Freire

Re: 3. Implemente las funciones agregarVisitaDiaTHashVisitaDia e imprimirTHashVisitaDia.

de Franco Pelua Camacho -
Hola. Buenas noches. Mi duda es la siguiente: la precondición de la función agregarVisitaDiaTHashVisitaDia dice que "no existe una visitaDia con la misma fecha en la estructura". Entonces, si tengo visitaDia1 y visitaDia2, que son diferentes a menos de las fechas, y en mi tabla ya tengo almacenada a visitaDia1, ¿entonces no puedo insertar visitaDia2?

Entonces, ¿tengo que interpretar que dos instancias de visitaDia son iguales si y solo si tienen la misma fecha? (Más allá de si los contenidos de los heaps son iguales o no).
En respuesta a Franco Pelua Camacho

Re: 3. Implemente las funciones agregarVisitaDiaTHashVisitaDia e imprimirTHashVisitaDia.

de Federico Rivero -
Hola Franco!

La precondición quiere decir que la función agregarVisitaDiaTHashVisitaDia no se la va a invocar con una visitaDia que tenga una fecha igual a alguna otra visitaDia en la estructura. Si efectivamente pasa que se la invoca, entonces la función puede manejarlo de cualquier manera, puede dar error, puede fallar, puede no hacer nada. Cualquier resultado es válido porque si no se cumple la precondición el error está en el llamador.

Habiendo explicado eso, en el marco del hashVisitaDia podés usar la fecha como identificador, sí, porque no va a haber dos con la misma fecha.

Saludos,
Federico