public void eliminar(String entrada) { Nodo1 actual; actual = lc; while ((actual.enlace != lc) && !(actual.enlace.dato.Equals(entrada))) { if (!actual.enlace.dato.Equals(entrada)) { actual = actual.enlace; } } // Enlace de nodo anterior con el siguiente // si se ha encontrado el nodo. if (actual.enlace.dato.Equals(entrada)) { Nodo1 p; p = actual.enlace; // Nodo a eliminar if (lc == lc.enlace) // Lista con un solo nodo { lc = null; } else { if (p == lc) { lc = actual; // Se borra el elemento referenciado por lc, // el nuevo acceso a la lista es el anterior } actual.enlace = p.enlace; } p = null; } }
public ListaCircular insertar(String entrada) { Nodo1 nuevo; nuevo = new Nodo1(entrada); if (lc != null) // lista circular no vacía { nuevo.enlace = lc.enlace; lc.enlace = nuevo; } lc = nuevo; return(this); }
public void borrarLista() { Nodo1 p; if (lc != null) { p = lc; do { Nodo1 t; t = p; p = p.enlace; t = null; // no es estrictamente necesario } while (p != lc); } else { Console.WriteLine("\n\t Lista vacía."); } lc = null; }
public Nodo1(String entrada) { dato = entrada; enlace = this; // se apunta asímismo }
//public Nodo1 primero; public ListaCircular() { lc = null; }