hola y gracias de antemano por este foro para los que empezamos. Espero poder ayudar algún día.
El código siguiente define una agenda mediante una lista simple. La lista añade o inserta los nodos por el criterio nombre, ya ordenados. En ella se usa un puntero a estructura (*anterior) que va guardando la dirección del nodo anterior, un puntero "auxiliar" para recorrido, intercambio, etc y un puntero nuevo para crear nodos mediante asignación dinámica de memoria. Por ejemplo si inserto un nodo, auxiliar se va trasladando (auxiliar=auxiliar->siguiente) y anterior va guardando la posicion penultima de auxiliar (anterior = auxiliar).y se reorganizan los nodos haciendo un puente (anterior->siguiente=nuevo) y (nuevo->siguiente=auxiliar). Mi pregunta es: si creo una estructura con otro puntero que indique la direccion del nodo anterior, ademas del actual que indica el siguiente,
struct _agenda {
char nombre[20];
char telefono[12];
struct _agenda *siguiente;
struct agenda * anterior;
};
Usando el mismo código o algoritmo para recorrer la lista (while anterior != NULL) y auxiliar = auxiliar->siguiente, veo que cuando encuentra la posición de insercion, con la asignación nuevo->siguiente= auxiliar y nuevo->anterior = auxiliar->anterior consigo que el nuevo elmento apunte al anterior y al siguiente, pero , como consigo que el puntero siguiente del nodo anterior apunte al nuevo nodo?. Me estoy equivocando al utilizar el mismo algoritmo que para la lista simple ?. MUchas gracias por vuestra ayuda.
/