none
ayuda lista doble enlazada con nodos RRS feed

  • Pregunta

  • hola me pueden ayudar a como insertar un dato  en un lugar especifico y como recorrer una lista del inicio  le paso mi codigo haber si me pueden ayudar

    namespace listdob
    {
        class Lista
        {
            Nodo first, last;
    
            public Lista() { first = last = null; }
    
            public void Ingresar()
            {
                string nom;
                Console.Clear();
                Console.WriteLine("Ingrese Datos ");
                Console.WriteLine("**************");
                Console.Write("Ingrese Numero: ");
                nom = Console.ReadLine();
                Nodo i = new Nodo(nom);
                Insertar(i);
            }
            public void inseresp()
            {
    
            }
            public void Ingresasin()
            {
                string nom;
                Console.Clear();
                Console.WriteLine("Ingrese Datos ");
                Console.WriteLine("**************");
                Console.Write("Ingrese Numero: ");
                nom = Console.ReadLine();
                Nodo z = new Nodo(nom);
                Insertarin(z);
    
            }
            /*public void recorrer()
            {
                Nodo temp = first;
                while (temp != null)
                {
                    temp.
                    temp = temp.sig;
                }
            }
            */
            public void Mostrar()
            {
                Nodo i;
                if (first != null)
                {
                    i = first;
                    while (i != null)
                    {
                        i.Mostrar();
                        i = i.sig;
                    }
                }
                else
                {
                    Console.WriteLine("lista vacia");
                }
                Console.ReadLine();
            }
    
            public Nodo Buscar(string b)
            {
                Nodo i;
                i = first;
                while (i != null)
                {
                    if (i.NOMBRE == b)
                        return (i);
                    else
                        i = i.sig;
                }
                return (null);
            }
    
            public bool Eliminar()
            {
                string busca;
                Nodo padre, hijo;
                Console.Write("Ingrese nombre del empleado a eliminar: ");
                busca = Console.ReadLine();
                padre = Eliminar(busca);
                if (padre == last)
                    return (false);
                if (padre == null)
                {
                    hijo = first;
                    first = hijo.sig;
                }
                else
                {
                    hijo = padre.sig;
                    padre.sig = hijo.sig;
                }
                if (hijo == last)
                {
                    last = padre;
                    hijo = null;
                    
                }
                return (true);
    
            }
    
            public Nodo Eliminar(string b)
            {
                Nodo i, p;
                i = first;
                p = null;
                while (i != null)
                {
                    if (i.NOMBRE == b)
                        break;
                    else
                    {
                        p = i;
                        i = i.sig;
                    }
                }
                return (p);
            }
    
            private void Insertar(Nodo i)
            {
                if (first == null)
                {
                    first = i;
                    last = i;
                }
    
                else
                {
                    last.sig = i;
                    last = i;
                }
                   
            }
            private void Insertarin(Nodo i)
            {
                if (first == null)
                    first = i;
                else
                {
                    i.sig = first;
                    first = i;
                }
                    
            }
            public void inseresp(Nodo i)
            {
                if (first == null)
                {
                    first = i;
                }
                else
                {
                    Nodo temp = first;
                    int cuen=0;
                    int pos = 0;
                    while (temp != null && cuen != pos)
                    {
    
                    }
                }
            }
        }
    }
            

    namespace listdob
    {
        class Nodo
        {
            private string Nombre;
    
            public Nodo sig;
            public Nodo(string nombre) { this.Nombre = nombre; this.sig = null; }
    
            public void Mostrar() { Console.WriteLine("Nombre :{0}", this.Nombre); }
    
            public string NOMBRE { get { return (Nombre); } }
    
        }
    }

    namespace listdob
    {
        class Program
        {
            static void Main(string[] args)
            {
                short op;
                string busca;
                Nodo v;
                Lista m = new Lista();
                do
                {
                    Console.Clear();
                    Console.WriteLine("\tLISTAS ENLAZADAS\n");
                    Console.WriteLine("1. Ingresar Final");
                    Console.WriteLine("2. Mostrar");
                    Console.WriteLine("3. Buscar");
                    Console.WriteLine("4. Eliminar");
                    Console.WriteLine("5. Intercambiar");
                    Console.WriteLine("6. Recorrer un dato");
                    Console.WriteLine("7. Ingresar inicio ");
                    Console.Write("Ingrese opción: ");
                    op = Convert.ToInt16(Console.ReadLine());
                    switch (op)
                    {
                        case 1:
                            m.Ingresar();
                            break;
                        case 2:
                            Console.Clear();
                            m.Mostrar();
                            break;
                        case 3:
                            Console.Clear();
    
                            Console.Write("Ingrese valor a buscar: ");
                            busca = Console.ReadLine();
                            v = m.Buscar(busca);
                            if (v == null)
                                Console.WriteLine("No existe el Empleado");
                            else
                            {
                                Console.WriteLine("Nodo encontrado");
                                v.Mostrar();
                            }
                            Console.ReadLine();
                            break;
                        case 4:
                            if (m.Eliminar())
                                Console.WriteLine("Nodo eliminado...");
                            else
                                Console.WriteLine("Nodo no encontrado...");
                            Console.ReadLine();
                            break;
                        case 5:
                            Console.Clear();
    
                            break;
                        case 6:
                            Console.Clear();
    
                            break;
                        case 7:
                            m.Ingresasin();
                            break;
                        default:
                            Console.WriteLine("Proceso Terminado...");
                            break;
                    }
                } while ((op > 0) && (op < 8));
            }
    
        }
    }
    

    si me ayudan se lo agradeceria


    FAHS

    miércoles, 14 de noviembre de 2018 1:28

Respuestas

  • Hola   FRANCK8299

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te comento que nos encontramos realizando la revisión del inconveniente que presentas.

    Te daremos una respuesta a la brevedad posible.

    Gracias por usar los foros de MSDN.

    Pablo Rubio
     ____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.
    miércoles, 14 de noviembre de 2018 15:30
    Moderador