Señores disculpen la ignorancia pero como inserto un elemento en una lista Doblemente enlazada... mi parametro es un string y lo recibo por un archivo de texto... hago la lectura y luego mando a la funcion insertar pero se ejecuta tres veces y despues hay una error y no lo logro ver... aqui esta mas o menos el codigo para ver si me ayudan... esta es la definicion ....struct _nodo {  StringNombre;                                           struct _nodo *Siguiente;                struct_nodo*Anterior;};          
   typedef struct _nodo LineaUno,LineaDos,LineaTres;
typedef LineaUno *pNodo;
typedefLineaUno*Lista;         y esta es mi funcion insertar                                    void insertar(Lista*l,StringEstacion);     
aqui esta la definicion ...                                                     void insertar(Lista *lista, String Estacion)
      {
        pNodo  nuevoPtr,actualPtr;
          /* Crear un nuevo nodo */
        nuevoPtr = (pNodo)malloc(sizeof(LineaUno));
          strcpy((nuevoPtr->Nombre),Estacion) ;        
        printf("n%s",(nuevoPtr->Nombre)); //solo para debugger
          /* Colocamos actual en la primera posicion de la lista */
         actualPtr = *lista;
         if (actualPtr) while (actualPtr->Siguiente) actualPtr = actualPtr->Anterior;
         if (!actualPtr) {
        /* Añadimos la lista a continuacion del nuevo nodo*/
         nuevoPtr->Siguiente = actualPtr;
         nuevoPtr->Anterior = NULL;
         if (actualPtr) actualPtr->Anterior = nuevoPtr;
         if (!*lista) *lista = nuevoPtr;}        
         else {
            /* Avanzamos hasta el ultimo elemento*/
            /*Insertamos el nuevo nodo despues del nodo anterior*/ 
          nuevoPtr->Siguiente = actualPtr->Siguiente;
          actualPtr->Siguiente = nuevoPtr;
          nuevoPtr->Anterior = actualPtr;
            if (nuevoPtr->Siguiente) nuevoPtr->Siguiente->Anterior = nuevoPtr; 
          }
        } les agradeceria que me resolvieran el embrollo ...gracias...