Hola buenas tardes/noches
ps mi duda es la siguiente:
Tengo este programa de Listas Doblemente Ligadas
Inserta e elimina nodos
imprime la lista de izquierda a derecha.
lo q quiero que tmb haga es ordenar la lista
por ejemplo si esta es la lista:
4 5 1 0 8
q la ordene d menor a mayor:
0 1 4 5 8
pero no tengo mucha idea d como hacerloo
la otra duda es que invierta la lista
por ejemplo si esta es la lista:
4 5 1 0 8
al momento de invertir la lista quedaria asi:
8 0 1 5 4
pero tampoco me salee Confused
Les pongo el codigo que tengo :
espero q me puedan ayudar!
import java.io.*;
class Nodo
{
public int info;
public Nodo sig, ant;
public Nodo(int x)
{
info = x;
sig = ant = null;
}
}
class ListaDoblementeLigada
{
private Nodo inicio, fin;
public ListaDoblementeLigada()
{
inicio = fin = null;
}
public void inserta(int x)
{
Nodo temp = new Nodo(x);
if(inicio == null && fin == null)
inicio = fin = temp;
else
{
temp.ant = fin;
fin.sig = temp;
fin = temp;
}
}
public void recorreIzq()
{
Nodo aux;
aux = inicio;
while(aux != null)
{
System.
out.
print(aux.
info + " "); aux = aux.sig;
}
}
public void elimina()
{
Nodo aux, aux2;
aux = aux2 = fin;
fin = fin.ant;
aux2 = fin;
System.
out.
println("Dato eliminado: " + aux.
info); aux2.sig = null;
aux.ant = null;
}
public void menu()
{
System.
out.
println("1.- Insertar"); System.
out.
println("2.- Recorrer de Izquierda a Derecha"); System.
out.
println("3.- Invertir lista"); System.
out.
println("4.- Eliminar"); System.
out.
println("5.- Salir");
}
{
int cantidad, opc, dato;
ListaDoblementeLigada L1 = new ListaDoblementeLigada();
do
{
L1.menu();
opc
= Integer.
parseInt(entrada.
readLine());
if (opc == 1)
{
System.
out.
print("Cantidad de nodos de la lista 1: "); cantidad
= Integer.
parseInt(entrada.
readLine()); for(int i = 1; i <= cantidad; i++)
{
System.
out.
print("Da el dato "+ i
+ ": "); dato
= Integer.
parseInt(entrada.
readLine());
L1.inserta(dato);
}
}
if(opc == 2)L1.recorreIzq();
if(opc == 4)L1.elimina();
}while(opc != 5) ;
}
}