Пример #1
0
        protected override bool InsertarEn(int prmIndice, Tipo prmItem)
        {
            clsNodoDobleEnlazado <Tipo> varNodoNuevo = new clsNodoDobleEnlazado <Tipo>(prmItem);

            if (EstaVacia())
            {
                atrNodoPrimero = varNodoNuevo;
                atrNodoUltimo  = varNodoNuevo;
                atrNodoPrimero.ponerSiguiente(atrNodoUltimo);
                atrNodoUltimo.ponerAnterior(atrNodoPrimero);
                atrLongitud++;
                return(true);
            }
            if (prmIndice == 0)
            {
                varNodoNuevo.ponerSiguiente(atrNodoPrimero);
                atrNodoPrimero.ponerAnterior(varNodoNuevo);
                atrNodoPrimero = varNodoNuevo;
                atrLongitud++;
                return(true);
            }
            if (prmIndice == atrLongitud)
            {
                //atrNodoUltimo.ponerSiguiente(varNodoNuevo);
                //varNodoNuevo.ponerAnterior(atrNodoUltimo);
                atrNodoUltimo.ConectarSiguiente(varNodoNuevo);
                atrNodoUltimo = varNodoNuevo;
                atrLongitud++;
                return(true);
            }
            if (IrIndice(prmIndice - 1))
            {
                //varNodoNuevo.ponerSiguiente(atrNodoActual);
                //varNodoNuevo.ponerAnterior(atrNodoActual.darAnterior());
                //atrNodoActual.darAnterior().ponerSiguiente(varNodoNuevo);
                //atrNodoActual.ponerAnterior(varNodoNuevo);
                atrNodoActual.ConectarSiguiente(varNodoNuevo);
                atrLongitud++;
                return(true);
            }
            return(false);
        }