none
ayuda lista sencillamente enlazada RRS feed

  • Pregunta

  • hola tengo este codigo
    namespace pruebas
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.BackgroundColor = ConsoleColor.Blue;
                Console.ForegroundColor = ConsoleColor.White;
                Console.Clear();
                short op;
                string busca;
                Nodo v;
                ListaEnlazada.Lista m = new ListaEnlazada.Lista();
                do
                {
                    Console.Clear();
                    Console.WriteLine("\t================\n");
                    Console.WriteLine("\tLISTAS ENLAZADAS\n");
                    Console.WriteLine("\t================\n");
                    Console.WriteLine("1. Ingresar");
                    Console.WriteLine("2. Mostrar");
                    Console.WriteLine("3. Buscar");
                    Console.WriteLine("4. Eliminar");
                    Console.WriteLine("5. Salir");
                    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 Numero");
                            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;
    
                        default:
                            Console.WriteLine("Proceso Terminado...");
                            break;
                    }
                } while ((op > 0) && (op < 5));
            }
        }
    
    
    
        namespace ListaEnlazada
        {
            class Lista
            {
                Nodo first, last;
    
                public Lista() { first = last = null; }
    
    
    
                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 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 bool Eliminar()
                {
                    string busca;
                    Nodo padre, hijo;
                    Console.Write("Ingrese numero que desea 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;
                    else
                        last.sig = i;
                    last = i;
                }
            }
        }
    
        
    
        public class Nodo
        { 
    
           
                private string Nombre;
    
                public Nodo sig;
                public Nodo(string nombre) { this.Nombre = nombre; this.sig = null; }
    
                public void Mostrar() { Console.WriteLine("numero :{0}", this.Nombre); }
    
                public string NOMBRE { get { return (Nombre); } }
        }
    }
    
    me podrian ayudar para insertar un numero en medio y al inicio  de la lista 

    FAHS

    martes, 25 de septiembre de 2018 22:33