Dudas sobre el punto 1
Re: 1. Implemente la estructura rep_coleccionTGrupos
Desde ya muchas gracias.
Re: 1. Implemente la estructura rep_coleccionTGrupos
El objetivo de usar el cabezal es que no tengas que agregarle nada al struct de grupo para poder implementar la lista de grupos. Desde el cabezal luego se puede mantener una referencia al grupo.
Saludos!
Re: 1. Implemente la estructura rep_coleccionTGrupos
Gracias por la respuesta anterior pero me entro una duda mas ¿tendría que definir el cabezal apuntándolo a TcolececcionTGrupos?
Muchas gracias.
Re: 1. Implemente la estructura rep_coleccionTGrupos
El cabezal es de tipo colección. En ese cabezal tendrías que tener una referencia al grupo.
Saludos!
Re: 1. Implemente la estructura rep_coleccionTGrupos
Buenas, ¿Cómo están?
Me está costando entender la forma de trabajo con "cabezal"... me conviene inicializarlo en crearColeccion?
Porque si la coleccion está vacía debería hacer una referencia a un grupo vacío al igual que sus punteros, es correcto así? o lo estoy entendiendo mal?
Consulto esto porque pude insertar, y al momento de liberar me genera alguna fuga (seguramente por el mal manejo al inicio).
Espero su respuesta.
Gracias
Saludos!
Re: 1. Implemente la estructura rep_coleccionTGrupos
Hola Gonzalo!
La implementación que se presenta en el teórico para la lista doblemente encadenada no tiene punteros al grupo en el cabezal, solo dos punteros a un nodo interno de un tipo definido en el .cpp. Lo podés ver en la diapositiva 94 del teórico:
https://eva.fing.edu.uy/pluginfile.php/106170/mod_resource/content/9/Punteros_estructuras_lineales.pdf
Saludos,
Federico
Re: 1. Implemente la estructura rep_coleccionTGrupos
Tenía presente esa estructura, pero pensé que la idea en este apartado para la tarea2 era otra.
Re: 1. Implemente la estructura rep_coleccionTGrupos
Buenas!
Tengo problemas para definir la estructura de los cabezales y las listas.
Se supone que tiene que ir todo en la misma estructura?
Intenté hacerlo por separado y desde el IDE no tengo ningún tipo de error al implementar las funciones,sin embargo el compilador no me reconoce los tipos..
("error : 'rep_NodoDoble' no nombra a un tipo")
Evidentemente algo no estoy entendiendo.
Gracias!
Re: 1. Implemente la estructura rep_coleccionTGrupos
Re: 1. Implemente la estructura rep_coleccionTGrupos
Estaba definiendo tipos de datos que hasta esa línea..no existían..tenía que cambiar el orden de la definición de las estructuras,nada mas.
Re: 1. Implemente la estructura rep_coleccionTGrupos
Espero su respuesta.
Gracias.
Re: 1. Implemente la estructura rep_coleccionTGrupos
Fijate bien la letra:
Implemente la estructurarep_coleccionTGrupos
que permita almacenar una lista doblemente enlazada. [...] recomendamos que la representación sea mediante un cabezal con un puntero al nodo inicial y otro al nodo final. En este sentido, se debe definir además una representación auxiliar para los nodos de la lista doblemente enlazada, que tengan un elementoTGrupoABB
, un puntero a un nodo siguiente y uno a un nodo anterior.
O sea que el struct rep_coleccionTGrupos
, va a tener adentro los punteros a los nodos inicial y final, y no va a formar parte de la lista enlazada. Este es el cabezal y va a haber solo uno por colección. El .h
se refiere a este struct cuando define typedef struct rep_coleccionTGrupos *TColeccionTGrupos;
.
Por otra parte, hay que definir una representación auxiliar (struct nodoDoble
y luego typedef struct nodoDoble *nodoTGrupos;
) para representar los nodos de la lista como pide la letra. Esos sí se enlazan y va haber tantos como grupos tenga la lista (y alguno más si usás una variante con dummy, como en la p. 93 del teórco).
Otra cosa, los typedef
se hacen (generalmente) al principio del cpp y nunca adentro de una función.