public bool Borrar(int i) { if (i >= numeroElementos || i < 0) { return(false); } // Encontrar el indice del elemento CElemento elemAnterior = p; CElemento elemActual = p; for (int n = 0; n < i; n++) { elemAnterior = elemActual; elemActual = elemActual.siguiente; } if (elemActual == p) { p = p.siguiente; } else { elemAnterior.siguiente = elemActual.siguiente; } numeroElementos--; return(true); }
public bool Obtener(out T e, int i) { e = default(T); if (i >= numeroElementos || i < 0) { return(false); } CElemento q = p; for (int n = 0; n < i; n++) { q = q.siguiente; } e = q.datos; return(true); }
public bool Añadir(int i, T obj) { if (i > numeroElementos || i < 0) { Console.WriteLine("Índice fuera de límites"); return(false); } CElemento q = new CElemento(obj, null); if (numeroElementos == 0) { p = q; numeroElementos++; return(true); } // Si la lista no está vacia, encuentra el punto de insercion CElemento elemAnterior = p; CElemento elemActual = p; for (int n = 0; n < i; n++) { elemAnterior = elemActual; elemActual = elemActual.siguiente; } if (elemAnterior == elemActual) { q.siguiente = p; p = q; } else { q.siguiente = elemActual; elemAnterior.siguiente = q; } numeroElementos++; return(true); }
public CElemento(T d, CElemento s) { datos = d; siguiente = s; }