Hola, me dejaron esta tarea pero no se por donde comenzar, alguien me puede dar una mano?
EJERCICIO:
observa que este ejemplo está limitado a insertar tres elementos en la lista. Modifica 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.
Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace lista_enlazada_2
{
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.Write(" null");
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;
}
}
}
Por donde puedo comenzar? ...lo que pensaba hacer era agregar al inicio:
Después de alguna manera modificar, el main
Código:
ListaEnlazada lista = new ListaEnlazada();//Se crea el objeto lista enlazada
lista.Insertar(Console.ReadLine());//Se inserta un nodo a la lista con un atributo de tipo entero
O algo así, para que el usuario pueda ingresar valores al nodo...
Pues como verán, es una estupidez pero no se por donde comenzar... alguna sugerencia?