class ListaLigada {
 Nodo inicio,fin; int cuantos;
 boolean esVacia() { return inicio==null;}
 void insertarInicio(String info) {
     Nodo nuevo = new Nodo();     //crear un objeto Nodo
     nuevo.siguiente = inicio;nuevo.dato = info;
     inicio = nuevo;
     if (fin==null) fin = nuevo;
     cuantos++;
 }//insertarInicio
 void insertarFin(String info) {
     Nodo nuevo = new Nodo(); //crear un objeto Nodo
     nuevo.siguiente = null; nuevo.dato = info;
     fin.siguiente = nuevo;fin = nuevo;
     if (inicio==null) inicio = nuevo;    
     cuantos++;
 }//insertarFin
 Nodo buscar(String info) {
  Nodo actual = inicio, resultado=null;
  boolean encontrado=false;
  while ( actual != null && !encontrado) {
   if (info.equals(actual.dato)){
       encontrado=true; resultado= actual;}//if
    actual = actual.siguiente;
  }//while
  return resultado;
 }
 void borrarInicio() {
  if (!esVacia()){
     inicio = inicio.siguiente;
     cuantos--;
     if (inicio==null) fin=null;
  }//if
 }//borrarInicio  
 void borrarFin() {
  if (!esVacia()){
   Nodo penultimo=null;//buscar el penultimo elemento      
   for (Nodo actual=inicio;actual!=fin;actual=actual.siguiente) 
      penultimo = actual;
   if (penultimo!=null) penultimo.siguiente = null;
   else inicio=null;
   fin=penultimo;
   cuantos--;
  }//if 
 }//borrarFin
   //imprimir lista
 void imprimir() {
  System.out.println("Numero de elementos "+cuantos);

   System.out.println("inicio "+inicio + " fin "+ fin);
   for (Nodo actual=inicio;actual!=null;actual=actual.siguiente)
    System.out.println("actual "+actual+" "+actual.dato+
        " "+actual.siguiente);
 }//imprimir
}










