Java - Ordenar e invertir listas ligadas

   
Vista:

Ordenar e invertir listas ligadas

Publicado por Diamante Loco (1 intervención) el 14/07/2009 14:50:01
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!

Código:

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("");
System.out.println("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");
System.out.print("Opcion: ");

}
public static void main(String a[])throws IOException
{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader entrada = new BufferedReader(isr);

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) ;
}

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ordenar e invertir listas ligadas

Publicado por wil  (1 intervención) el 12/08/2009 20:56:58
la neta esta duro tu caso jejeje ve kien te ayuda tu maestro o amigos o robaselo a alguien jejeje XD
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar