//Metodo para agregar nodos al final
 public void agregarAlFinal(Object pDato)
 {
     if (!listaVacia())
     {
         ultimo = new NodoListaDoble(pDato, null, ultimo);
         ultimo.anterior.siguiente = ultimo;
     }
     else
     {
         primero = ultimo = new NodoListaDoble(pDato);
     }
 }
 //Metodo para mostrar los datos del nodo
 public void mostrarListaIniciFin()
 {
     if (!listaVacia())
     {
         String         datos    = "<=>";
         NodoListaDoble auxiliar = primero;
         while (auxiliar != null)
         {
             datos    = datos + "[" + auxiliar.dato.ToString() + "] <=> ";
             auxiliar = auxiliar.siguiente;
         }
         System.Console.WriteLine("Lista: " + datos);
         System.Windows.Forms.MessageBox.Show("Listado de Cursos: " + datos, "Listado de Cursos");
     }
 }
 public NodoListaDoble(Object pDato, NodoListaDoble pNodoSiguiente, NodoListaDoble pNodoAtras)
 {
     dato      = pDato;
     siguiente = pNodoSiguiente;
     anterior  = pNodoAtras;
 }
 public ListaDoble()
 {
     primero = ultimo = null;
 }
 public NodoListaDoble(Object pDato)
 {
     siguiente = anterior = null;
     dato      = pDato;
 }