public void eliminar(String entrada) { NodoCircular 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)) { NodoCircular 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) { NodoCircular nuevo; nuevo = new NodoCircular(entrada); if (lc != null) // lista circular no vacía { nuevo.enlace = lc.enlace; lc.enlace = nuevo; } lc = nuevo; return(this); }
public void borrarLista() { NodoCircular p; if (lc != null) { p = lc; do { NodoCircular 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 NodoCircular(String entrada) { dato = entrada; enlace = this; }
public ListaCircular() { lc = null; }