Hola Luciano,
Tu solución presenta varios errores, y me parece que en parte se debe a que no contemplas cuando l es vacía y cuando no lo es.
Te recomiendo que comiences de nuevo a partir de los siguientes comentarios, y vayas razonando (y dibujando) cómo te quedan los punteros.
En primer lugar el nodo nuevo debe ser un puntero a nodo_doble.
Esto puedes definirlo de las siguientes maneras:
- nodo_doble * nuevo = new nodo_doble;
- lista nuevo = new nodo_doble;
En segundo lugar, piensa qué pasa cuando accedes a l->ant si l es NULL.
También debes tener en cuenta que el anterior al nodo nuevo siempre es NULL (si l no es NULL, entonces l->ant si es NULL).
Saludos
Tu solución presenta varios errores, y me parece que en parte se debe a que no contemplas cuando l es vacía y cuando no lo es.
Te recomiendo que comiences de nuevo a partir de los siguientes comentarios, y vayas razonando (y dibujando) cómo te quedan los punteros.
En primer lugar el nodo nuevo debe ser un puntero a nodo_doble.
Esto puedes definirlo de las siguientes maneras:
- nodo_doble * nuevo = new nodo_doble;
- lista nuevo = new nodo_doble;
En segundo lugar, piensa qué pasa cuando accedes a l->ant si l es NULL.
También debes tener en cuenta que el anterior al nodo nuevo siempre es NULL (si l no es NULL, entonces l->ant si es NULL).
Saludos