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.