Hola espero les sea de utilidad es un codigo que ejecuta un llenado aleatorio de la lista y su ordenamiento debido en C#, se aceptan quejas y sugerencias saludos...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
namespace Listas_Enlazadas
{
class Program
{
private Nodo primero;
private int size;
public Program()
{
this.primero = null;
this.size = 0;
}
public void ListaVacia()
{
if (primero == null)
{
Console.WriteLine("La lista esta vacia");
}
else
{
Console.WriteLine("La lista tiene datos");
}
}
public void addNodo(int dato)
{
Nodo nuevo = new Nodo(dato); //agregar el nodo
Nodo valor1, valor2;
if (primero == null)
{
primero = nuevo;
nuevo.siguiente = null;
}
else
{
valor1 = primero;
while(valor1!=null)
{
valor2 = valor1.siguiente;
//condicion para ver si el numero entrante debe de ir al inicio
if (nuevo.dato <= valor1.dato)
{
nuevo.siguiente = primero;
primero = nuevo;
break;
}
else
{
//condicion para ver si el numero entrante debe de ir al ultimo
if (nuevo.dato > valor1.dato && valor2 == null)
{
valor1.siguiente = nuevo;
nuevo.siguiente = null;
break;
}
else
{
//condicion para ver si el numero entrante debe de ir en medio de otro nodo
if (valor1.dato < nuevo.dato && valor2.dato >= nuevo.dato)
{
valor1.siguiente = nuevo;
nuevo.siguiente = valor2;
break;
}
else
{
valor1 = valor1.siguiente;
}
}
}
}
}
size++;
}
public int Size()
{
return size;
}
public void Mostrar()
{
Nodo actual = primero;
while (actual != null)
{
Console.WriteLine("[" + actual.dato + "]->");
actual = actual.siguiente;
}
}
static void Main(string[] args)
{
Program lista = new Program();
Console.ForegroundColor=ConsoleColor.Red;
Console.Write("Cuantos datos quiere ordenar:");
int linea=Convert.ToInt16(Console.ReadLine());
Random aleatorio = new Random();
lista.ListaVacia();
for (int f = 0; f < linea; f++)
{
lista.addNodo(Convert.ToInt16(aleatorio.Next(0, 1000)));
}
//lista.addNodo(11);
//lista.addNodo(2);
// lista.addNodo(35);
//lista.addNodo(14);
//lista.addNodo(53);
lista.Mostrar();
Console.WriteLine("tamaño" + lista.Size());
//lista.ListaVacia();
//Console.ReadLine();
}
}
}
//Codigo del Nodo
namespace Listas_Enlazadas
{
class Nodo
{
public int dato;
public Nodo siguiente;
public Nodo(int dato) //constructor
{
this.dato = dato;
this.siguiente = null;
}
}
}