Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
    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);
    }
Exemplo n.º 4
0
 public CElemento(T d, CElemento s)
 {
     datos = d; siguiente = s;
 }