public void transversa()
        {
            ClsNodos n = primero;
            string   dt;


            while (n != null)
            {
                dt       = n.dato;
                n        = n.adelante;
                this.tam = this.tam + 1;//Obtenemos el tamaño de la Lista
            }
        }
        public bool buscar(String ruta)
        {
            ClsNodos aux = primero;

            while (aux != null)
            {
                if (aux.dato.Equals(ruta))
                {
                    return(true);
                }
                aux = aux.adelante;
            }
            return(false);
        }
        public ListaDobles insertarcabezaLista(string entrada)
        {
            ClsNodos nuevo;

            nuevo          = new ClsNodos(entrada);
            nuevo.adelante = primero;

            if (primero != null)
            {
                primero.atras = nuevo;
            }
            primero = nuevo;
            tam++;
            return(this);
        }
        public ClsNodos get_cancion(int index)
        {
            if (index < 0 || index >= tam)
            {
                return(null);
            }

            int      n   = 0;
            ClsNodos aux = primero;

            while (n != index)
            {
                aux = aux.adelante;
                n++;
            }

            return(aux);
        }
        public void eliminarDoble(int entrada)
        {
            ClsNodos actual;

            actual = primero;
            ClsNodos open       = buscarPosicion(entrada);
            bool     encontrado = false;

            //bucle de busqueda

            while ((actual != null) && (!encontrado))
            {
                encontrado = actual.dato == open.dato;
                if (!encontrado)
                {
                    actual = actual.adelante;
                }
            }
            //enlace del nodo anterior con el siguiente

            if (actual != null)
            {
                //distinguir entre nodo cabeza del resto de la lista
                if (actual == primero)
                {
                    primero = 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//ultimo nodo
                {
                    actual.atras.adelante = null;
                }
                tam--;
                actual = null;
            }
        }
        public ListaDobles eliminarNodos(string entrada)
        {
            ClsNodos actual = new ClsNodos(entrada);

            actual = primero;
            ClsNodos anterior = new ClsNodos(entrada);

            anterior = null;
            bool encontrado = false;

            while (actual != null && encontrado == false)
            {
                if (actual.dato == entrada)
                {
                    if (actual == primero)//elimino la primer cancion
                    {
                        primero       = primero.adelante;
                        primero.atras = null;
                    }
                    else if (actual == ultimo)//elimino la ultima cancion
                    {
                        anterior.adelante = null;
                        ultimo            = anterior;
                    }
                    else//elimino cualquier cancion
                    {
                        anterior.adelante     = actual.adelante;
                        actual.adelante.atras = anterior;
                    }
                    MessageBox.Show("CANCION ELIMINADA");
                    tam--;
                    encontrado = true;
                }
                anterior = actual;
                actual   = actual.adelante;
            }
            if (!encontrado)
            {
                MessageBox.Show("CANCION NO ENCONTRADA");
            }

            return(this);
        }
        //inserta dobles
        public void InsertarNodo(String name)
        {
            ClsNodos nuevo;

            nuevo = new ClsNodos(name);
            if (primero == null)
            {
                primero          = nuevo;
                primero.adelante = null;
                primero.atras    = null;
                ultimo           = primero;
            }
            else
            {
                ultimo.adelante = nuevo;
                nuevo.adelante  = null;
                nuevo.atras     = ultimo;
                ultimo          = nuevo;
            }
            tam++;
        }
 public ListaDobles()
 {
     primero = null;
     ultimo  = null;
     tam     = 0;
 }
示例#9
0
 public ClsNodos(string entrada)
 {
     this.dato     = entrada;
     this.adelante = atras = null;
 }