|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#21 | ||||
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
Quote:
Quote:
Quote:
Ciao. |
||||
|
|
|
|
|
#22 |
|
Senior Member
Iscritto dal: Aug 1999
Città: Milano
Messaggi: 606
|
mi riferivo al fatto di poter accedere ad un qualsiasi oggetto della lista in tempo lineare O(n) come avviene per un array
solo mettendo i puntatori su un array di oggetti posso fare ciò e quindi uso questo metodo per gli esercizi dove mi serve Sulla poca utilità di quello che faccio tramite sta meteria non avevo alcun dubbio cmq serve per fare pratica col linguaggio questo si Grazie delle info a presto |
|
|
|
|
|
#23 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Se è per questo un albero binario (soprattutto se completo) si può memorizzare tranquillamente in un vettore
|
|
|
|
|
|
#24 | |||
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
Quote:
Quote:
P.S.:Ho provato BugSeeker 2. Funziona bene, ma dopo che l'ho usato e lo chiudo, mi pianta l'intero computer, mouse compreso. Con Linux invece funziona bene. Succede anche a te? |
|||
|
|
|
|
|
#25 |
|
Senior Member
Iscritto dal: Aug 1999
Città: Milano
Messaggi: 606
|
no a me non capita
cmq tornando al discorso dell'array di oggetti cosa altro potrei fare per raggiungere l'obbiettiovo? |
|
|
|
|
|
#26 | |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
Non che non vada bene usare l'array, ma se il prof. vuole che utilizzi una lista concatenata non ti conviene usare qualcosa di diverso... |
|
|
|
|
|
|
#27 |
|
Senior Member
Iscritto dal: Aug 1999
Città: Milano
Messaggi: 606
|
si ma il insertion sort parla chiaro..devo accedere a un oggetto j-1 senza poter neanche avere un campo prev per tornare indietro (lista semplice ha solo next) ...non vedo molte alternative...la prima versione aveva metodo index ma la complessità veniva n^3 ...e non gli andava bene
mah che so a sto punto boh non so cosa inventarmi |
|
|
|
|
|
#28 | |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
|
|
|
|
|
|
|
#29 |
|
Senior Member
Iscritto dal: Aug 1999
Città: Milano
Messaggi: 606
|
"Definire una classe Java TreeList per una lista linkata semplice in modo che i singoli nodi possano contenere radici di alberi binari.
Scrivere un metodo Java per la classe TreeList che ordini la lista conl'algoritmo dell'Insertion Sort in base alle altezze degli alberi" |
|
|
|
|
|
#30 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Allora non va bene nemmeno il vettore che contiene le radici...
|
|
|
|
|
|
#31 |
|
Senior Member
Iscritto dal: Aug 1999
Città: Milano
Messaggi: 606
|
quindi questo programma è infattibile?
(da notare che cmq avevo publicato la prima soluzione senza array di oggetti e funzionava ..ma ripeto una complessità cubica è troppo alta) |
|
|
|
|
|
#32 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Fino a quando sei obbligato ad usare un lista per l'albero ed una lista per per le teste di albero credo che sia impossibile avere una complessita inferiore a O(N^3)...
|
|
|
|
|
|
#33 |
|
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Scusate... forse non ho capito io il problema, ma la soluzione che avevo proposto io non andava bene ?
Facendo prima una scansione degli alberi per trovare le dimensioni, poi fare l'ordinamento e' come fare un insertion sort su normali interi, o no ? Qualcosa del tipo Codice:
class TreeList
{
public TreeList next;
public int height;
public Tree root;
public static void sort( TreeList begin )
{
TreeList x = begin;
while( x != null )
{
x.height = x.root.height();
x = x.next;
}
insertionSort( begin );
}
O e' proprio implementare quest'ultimo con liste che ti da problemi ? Una possibile implementazione e' la seguente: Codice:
void insertionSort( TreeList begin )
{
if ( begin == null )
return;
// prima ordiniamo il resto della lista
insertionSort( begin.next );
// ora inseriamo il nuovo elemento
while( begin.next != null )
{
if ( begin.height > begin.next.height )
{ // swap altezza
int tmp = begin.height
begin.height = begin.next.height;
begin.next.height = tmp;
// swap radice
Tree tmp2 = begin.root;
begin.root = begin.next.root;
begin.next.root = tmp2;
begin=begin.next;
}
}
}
L'idea comunque e' che dovendo operare su liste e nmon su di un array, la cosa piu' semplice e' operare per ricorsione. L'algoritmo di solito parte partendo con due elementi, ordinandoli e aggiungendo poi man mano gli altri. In questo caso e' lo stesso, solo che l'array e' ordinato a partire dal fondo invece che dall'inizio: la chiamata ricorsiva scorre la lista fino agli ultimi due elementi, li ordina e poi torna; ritorna all'elemento precedente, lo inserisce e ritorna, e cosi' via finche' alla fine non fa che inserire l'ultimo elemento (ovvero il primo della lista). Non e' un algoritmo da manuale, ma e' insertion sort al 100%. Edit: ovviamente non potevo non fare errori Ri-Edit: corretto un piccolo bug ( non scambiavo le radici... |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:01.




















