UTNianos

Versión completa: Ayuda con ejercicios de la guia!! ACTUALIZADO!!
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola!!! Estoy teniendo grandes problemas para resolver los siguientes ejercicios, si alguien tiene alguno hecho, le agradeceria mucho si me lo puede pasar, a ver si me puedo orientar un poco jaja

8.8: Utilizando la estructura dNode del ejercicio anterior, implemente las siguientes funciones:
void d_insert ( struct dNode * List, void * Data);
void d_delete( struct dNode * Node );
La función d_insert agrega un elemento de Datos a la Lista indicada. Retorna el puntero al elemento resultante. La función d_delete elimina el Nodo indicado.
Nota: No olvide liberar toda la memoria reservada para ese nodo.
struct dNode
{
void *Datos;
struct dNode *psig;
struct dNode *pant;
};

8.22: Realizar una función s_copy que reciba un puntero a una lista simplemente enlazada, y realice una copia de la misma en memoria. La copia no debe tener nada en común con la lista original, salvo los datos, por lo tanto debe crear nuevos punteros, nodos y espacios de memoria. Al finalizar, devuelve el puntero a la nueva lista. Puede hacer uso de las
funciones ya desarrolladas que crea convenientes.

8.24: Implementar las siguientes funciones que deben unir dos listas simplemente o doblemente enlazadas, respectivamente.
void s_join( struct sNode *, struct sNode *);
void d_join( struct dNode *, struct dNode *);

8.25: Implementar las siguientes funciones que deben separar una lista (simplemente o doblemente enlazada, respectivamente) en dos listas distintas que comenzarán a partir de cada uno de los elementos pasados como parámetros de la función.
void s_split( struct sNode *, struct sNode *);
void d_split( struct dNode *, struct dNode *);

Son de la guia 2011.v4, gracias!!

P.D: Cambie los ejercicios, porque los otros ya los pude resolver por otro lado jaja
queres pasar algunos? no tengo esa guia
Ahí actualice la publicación, porque pude descartar y resolver varios ejercicios y me quedo el 8.29 que se subdivide en todos los que puse ahi jaja
Cualquier ayuda es bienvenida jaja
8.8: Utilizando la estructura dNode del ejercicio anterior, implemente las siguientes funciones:
void d_insert ( struct dNode * List, void * Data);
void d_delete( struct dNode * Node );
La función d_insert agrega un elemento de Datos a la Lista indicada. Retorna el puntero al elemento resultante. La función d_delete elimina el Nodo indicado.
Nota: No olvide liberar toda la memoria reservada para ese nodo.
struct dNode
{
void *Datos;
struct dNode *psig;
struct dNode *pant;
};



Esto es agregar y eliminar un dato de una lista... Buescalo por el foro que hay un toco de estos resueltos ya...
Son clásicos...
Ya busque por el foro, pero la verdad es que lo que me confunde es que por ejemplo el dato sea tipo void y que no termino de entender como agregar o borrar nodos sin usar doble puntero en las funciones.
Usas doble puntero para no perder el inicio de la lista. Podes usar uno sólo si querés pero tenés que retornar el inicio siempre actualizado si lo tocas
URLs de referencia