Entra

View Full Version : [Java]Ordinare una lista


feboss
01-07-2007, 12:50
Ho un esercizio in cui mi chiede di ordinare una lista, doppiamente linkata e semplicemente linkata...

Non ho idea di come fare:
La cosa piu logica è creare un altra lista e fare un inserimento ordinato...
ma nell'esercizio mi chiede proprio di ordinarla,

qualcuno ha qualche idea o mi puo postare un po di codice?

cionci
02-07-2007, 08:35
Ci possono essere diversi modi...il più semplice è scambiare il campo informazioni fra due elementi delle lista...

Hai presente il bubblesort (giusto per citarne uno) ? Basta applicarlo sulla lista, pari pari...nello scambio andrai a scambiare il campo informazioni dei due elementi della lista. Questo è valido per le liste sia singolarmente che doppiamente linkate.

Un'altra possibilità è andare a scambiare i riferimenti agli elementi...sempre applicando il solito algoritmo di ordinamento, quando andrai ad effettuare lo scambio devi scambiare i riferimenti all'elemento successivo fra i due elementi da scambiare. Per una lista doppiamente linkata devi scambiare anche i riferimenti all'elemento precedente.

feboss
04-07-2007, 01:15
grazie mille...
era cosi facile e non mi era venuto in mente acc...

facevo un casino per nulla

mercury841
04-07-2007, 11:38
potresti usare il metodo sort sulla lista, però devi creare una classe che implementa l'interfaccia Comparator.

ciao

cionci
04-07-2007, 14:29
potresti usare il metodo sort sulla lista, però devi creare una classe che implementa l'interfaccia Comparator.
Credo che debba fare un esercizio sulle liste implementate a mano e non tramite la libreria di Java ;)

nuovoUtente86
04-07-2007, 14:40
potresti usare il metodo sort sulla lista, però devi creare una classe che implementa l'interfaccia Comparator.

ciao

In raltà per fare un confronto Comparable lo deve implementare cmq almeno che il Nodo con contenga al suo intern campi noti come int o stringhe e in tal caso con una get() esegue il confronto sui tipi base.
Puo far implementare alla list l' interfaccia Collection e Iterable