elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Estructuras dinámicas de datos" listas"
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Estructuras dinámicas de datos" listas"  (Leído 3,843 veces)
rafaelo

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Estructuras dinámicas de datos" listas"
« en: 6 Junio 2015, 06:57 am »

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;

        }

    }

}


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Estructuras dinámicas de datos" listas"
« Respuesta #1 en: 21 Junio 2015, 06:55 am »

Disculpa, pero el código que pones es .Net:

http://foro.elhacker.net/net-b62.0/

Dulces Lunas!¡.


En línea

The Dark Shadow is my passion.
Cheko1986

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Estructuras dinámicas de datos" listas"
« Respuesta #2 en: 4 Octubre 2015, 07:19 am »

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;

        }

    }

}





Resolviste este ejercicio, podrias ayudarme, se que es con un while pero no se bien como va

Saludos.
En línea

Draven Schwielicht

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Estructuras dinámicas de datos" listas"
« Respuesta #3 en: 22 Octubre 2015, 06:35 am »

hola disculpen ya pudieron resolver este ejercicio, estoy en las mismas se que se puede introducir un do while pero la ubicación para hacerlo funcionar no la se, ayúdenme porfa!!!



Citar
Cita de: Cheko1986 en  4 Octubre 2015, 07:19
Resolviste este ejercicio, podrias ayudarme, se que es con un while pero no se bien como va

Saludos.

hola disculpa ya pudiste resolver este ejercicio? también se puede con un do while pero estoy en las mismas no se bien la ubicación y como va, me ayudas?


[MOD] No hacer doble post, usar el botón "modificar" para añadir comentarios.
« Última modificación: 22 Octubre 2015, 07:14 am por simorg » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines