/// <summary> /// Metodo para añadir un nodo a la lista /// Los nuevos nodos se añaden al final de la lista. /// </summary> public void Add(string texto) { if (count <= 0) { nodo = new Nodo(texto); nodo_ini = nodo ; } else { while (nodo.next != nodo) nodo = nodo.next; nodo.next = new Nodo(texto); nodo_fin = nodo.next; } count++; }
/// <summary> /// Podrás preguntarle a la lista si contiene un string concreto. Si es así, devolverá el nodo que contiene el string. /// </summary> /// <param name="texto"></param> /// <returns> /// El nodo que contiene el string /// </returns> public Nodo Find(string texto) { if (count == 1) { if (nodo.Contains(texto)) { return nodo; } } if (count > 1) { nodo = nodo_ini; while (nodo.next != nodo) { if (nodo.next.Contains(texto)) { return nodo.next; } nodo = nodo.next; } return new Nodo(); // nodo con valores null y string empty } else return new Nodo();// nodo con valores null y string empty }
/// <summary> /// Constructor lista enlazada /// </summary> public MiLista() { nodo = null; count = 0; }
/// <summary> /// Podrás eliminar un nodo cualquiera de la lista. /// </summary> /// <param name="texto"></param> /// <returns> /// true si se ha podido borrar /// false en caso contrario /// </returns> public Boolean Delete(string texto) { if (count > 0) { nodo = Find(texto); if (nodo.texto == String.Empty) // es decir no lo he encontrado { return false; } else { nodo.Dispose(); // la lista se rompe porque no es doblemente enlazada. return true; } } else { return false; } }