Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - rafaelo

#1
Hola !! Me pueden ayudar con este ejercicio:

Debo modificar el código necesario para que, al ejecutarse el programa, solicite continuamente la captura de un valor que será insertado en la lista enlazada hasta que el usuario ya no desee continuar con dicho registro.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace listaenlazada

{

    class Program

    {

        static void Main(string[] args)

        {

            ListaEnlazada lista = new ListaEnlazada();//Se crea el objeto lista enlazada

            lista.Insertar(9);//Se inserta un nodo a la lista con un atributo de tipo entero

            lista.Insertar(12);

            lista.Insertar(4);

            lista.Mostrar();//_Muestra la lista enlazada ordenada del menor al mayor de los tipos enteros

            lista.Mostrar();

            lista.Borrar(4);//Borra un nodo de la lista enlazada

            lista.Mostrar();

            Console.ReadKey();

        }

    }

    class Nodo

    {

        public int valor;

        public Nodo sig;

        public Nodo(int v, Nodo s)

        {

            valor = v;

            sig = s;

        }

    }

    class ListaEnlazada

    {

        Nodo primero;

        Nodo actual;

        public ListaEnlazada()

        {

        }

        public void Insertar(int v)

        {

            Nodo anterior;

            if (ListaVacia() || primero.valor > v)

            {

                primero = new Nodo(v, primero);

            }

            else

            {

                anterior = primero;

                while (anterior.sig != null && anterior.sig.valor <= v)

                    anterior = anterior.sig;

                anterior.sig = new Nodo(v, anterior.sig);

            }

        }

        public void Mostrar()

        {

            Nodo aux;

            aux = primero;

            while (aux != null)

            {

                Console.Write(aux.valor + "->");

                aux = aux.sig;

            }

            Console.WriteLine();

        }

        public void Siguiente()

        {

            if (actual != null)

                actual = actual.sig;

        }

        public void Primero()

        {

            actual = primero;

        }

        public void Borrar(int v)

        {

            Nodo anterior, nodo;

            nodo = primero;

            anterior = null;

            while (nodo != null && nodo.valor < v)

            {

                anterior = nodo;

                nodo = nodo.sig;

            }

            if (nodo == null || nodo.valor != v)

                return;

            else

            {

                if (anterior == null)

                    primero = nodo.sig;

                else

                    anterior.sig = nodo.sig;

            }

        }

        public bool ListaVacia()

        {

            if (primero == null)

                return true;

            return false;

        }

        public void Ultimo()

        {

            Primero();

            if (ListaVacia())

                while (actual.sig != null)

                    Siguiente();

        }

        public bool Actual()

        {

            if (actual != null)

                return true;

            return false;

        }

        public int ValorActual()

        {

            return actual.valor;

        }

    }

}