Пример #1
0
        public NodoListaDoble siguiente()
        {
            NodoListaDoble a;

            a = actual;
            if (actual != null)
            {
                actual = actual.adelante;
            }
            return(a);
        }
        public ClsListaDoble insertarCabezaLista(string entrada)
        {
            NodoListaDoble nuevo;

            nuevo          = new NodoListaDoble(entrada);
            nuevo.adelante = cabeza;
            if (cabeza != null)
            {
                cabeza.atras = nuevo;
            }
            cabeza = nuevo;
            return(this);
        }
        public ClsListaDoble insertaDespues(NodoListaDoble anterior, string entrada)
        {
            NodoListaDoble nuevo;

            nuevo          = new NodoListaDoble(entrada);
            nuevo.adelante = anterior.adelante;
            if (anterior.adelante != null)
            {
                anterior.adelante.atras = nuevo;
            }
            anterior.adelante = nuevo;
            nuevo.atras       = anterior;
            return(this);
        }
        public void insertarCabezaArreglado(String name)
        {
            NodoListaDoble nuevo;

            nuevo = new NodoListaDoble(name);
            if (cabeza == null)
            {
                cabeza       = nuevo;
                cabeza.atras = nuevo;
                ultimo       = cabeza;
            }
            else
            {
                ultimo.adelante = nuevo;
                nuevo.atras     = cabeza;
                ultimo          = nuevo;
            }
        }
        public void eliminar(string entrada)
        {
            NodoListaDoble actual;
            bool           encontrado = false;

            actual = cabeza;

            // bucle de busqueda
            while ((actual != null) && (!encontrado))
            {
                encontrado = (actual.dato == entrada);
                if (!encontrado)
                {
                    actual = actual.adelante;
                }
            }

            // enlace de nodo anterior con el siguiente
            if (actual != null)
            {
                // distinguir entre nodo cabecera del resto de la lista
                if (actual == cabeza)
                {
                    cabeza = actual.adelante;
                    if (actual.adelante != null)
                    {
                        actual.adelante.atras = null;
                    }
                }
                else if (actual.adelante != null)
                { // no es el ultimo nodo
                    actual.atras.adelante = actual.adelante;
                    actual.adelante.atras = actual.atras;
                }
                else
                { // es el ultimo nodo
                    actual.atras.adelante = null;
                }
                actual = null;
            }
        }
Пример #6
0
 public IteradorLista(ClsListaDoble Id)
 {
     actual = Id.cabeza;
 }
 public NodoListaDoble(string entrada)
 {
     dato     = entrada;
     adelante = atras = null;
 }
        public NodoListaDoble cabeza; // es el nodo que se llama primero

        public ClsListaDoble()
        {
            cabeza = null;
        }