{
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;
}
}
}
//---------------------------------------------------
static void Main(string[] args)
{
ListaEnlazada lista = new ListaEnlazada();
lista.insertar(10);
lista.insertar(12);
lista.insertar(1);
lista.insertar(5);
lista.Mostrar();
lista.Borrar(5);
lista.Borrar(10);
lista.Mostrar();
Console.ReadKey();
}
}
No hay comentarios:
Publicar un comentario