Pages: [1] 2   Go Down
Print
Author Topic: come creare una lista  (Read 3410 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
rox
Forumista
***
Offline Offline

Posts: 633


« on: 28-03-2009, 13:03:21 »

Salve ragazzi,
nn mi è chiaro come si fa a creare una lista  a livello di codice?
Per caso la devo considerare come un array e riempirlo con tanti nodi?
Grazie in anticipo!
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #1 on: 28-03-2009, 13:18:57 »

A livello di codice, avendo opportunamente definito la classe Nodo, una lista è una istanza della classe Lista, che ha alcuni metodi utili (come getSize (), getHead (), ecc...) ed in essa è sufficiente un unico riferimento a Nodo per definire la testa della lista (il resto dei nodi sarà accessibile a cascata applicando getNext () sui nodi a partire dalla testa).
 

Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #2 on: 28-03-2009, 14:18:05 »

Sono riuscito a creare la classe nodo ma potresti fornirmi un esempio di creazione di una lista per esempio di tre elementi?
P.S. per caso la classe lista è già contenuta nelle api oppure me la devo creare dal nulla?
Grazie in anticipo!
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
genietto84
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 342



« Reply #3 on: 28-03-2009, 14:54:18 »

Sono riuscito a creare la classe nodo ma potresti fornirmi un esempio di creazione di una lista per esempio di tre elementi?
P.S. per caso la classe lista è già contenuta nelle api oppure me la devo creare dal nulla?
Grazie in anticipo!

Le API di Java fornisco l'adt List, ArrayList ma a programmazione 2 non possono essere utilizzate devi costruirla tu!
Come detto ti serve una classe noto e una lista. Nella classe lista devi considerare tutte le operazioni che ti sevono (inserimento, eliminazione, ricerca di un elemento, numero di elementi... )...
Credo che l'esempio lo trovi ( o troverai)  nelle slides.
 
Logged
Antoniods
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 475



« Reply #4 on: 29-03-2009, 10:35:27 »

 
Logged

"Ho fallito diversi esami all'università, un mio amico li ha sempre passati tutti al primo colpo. Ora lui è ingegnere alla Microsoft, ed io... io sono il capo della Microsoft". (Bill Gates)
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


File reality.sys corrupted, Reboot Universe? Y/N


« Reply #5 on: 29-03-2009, 14:16:27 »

scusate io volevo provare a fare una lista di oggetti generici...solo che nel momento in cui (ad esempio per la ricerca ordinata,o la cancellazione di una chiave ecc) devo comparare gli oggetti ho dei problemi....perchè nella classe Object non c'è il metodo compareTo...e quindi come dovrei fare??
Logged

L'odrine delle lttere dnetro una praorla non è ipmortatne, la sloa cosa ipmortatne è che la pmria e l'utlima ltteera sinao nel potso giutso. Il rseto può essree in un dsiodrine più totlae e voi ptoerte smerpe lggeree sneza porblmea.
feboss
Guest
« Reply #6 on: 29-03-2009, 15:33:39 »

scusate io volevo provare a fare una lista di oggetti generici...solo che nel momento in cui (ad esempio per la ricerca ordinata,o la cancellazione di una chiave ecc) devo comparare gli oggetti ho dei problemi....perchè nella classe Object non c'è il metodo compareTo...e quindi come dovrei fare??

Alcuni metodi di Lista
Code:
public class Lista<E extends Comparable<E>>
    private Nodo<E> Testa,  Coda;

  public Nodo<E> trova(E val)
    {
        Nodo<E> Temp = Testa;
        for(;Temp!=null && Temp.getInfo().compareTo(val)!=0;Temp=Temp.getNext())
            ;
        return Temp;
       
    }

nodo
Code:
public class Nodo<E>
private Nodo<E> next;
    private E info;
Logged
djjeck
Matricola
*
Offline Offline

Gender: Male
Posts: 89


Ho una donna nuda per avatar. Non c'era di meglio.


WWW
« Reply #7 on: 29-03-2009, 15:38:46 »

Quello che febos voleva dire, è che se usi i generics puoi imporre che la tua lista contenga soltanto Comparable, e quindi tutti gli oggetti che hai implementano il metodo compareTo.
Vero?
Logged
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #8 on: 29-03-2009, 15:51:02 »

scusate io volevo provare a fare una lista di oggetti generici...solo che nel momento in cui (ad esempio per la ricerca ordinata,o la cancellazione di una chiave ecc) devo comparare gli oggetti ho dei problemi....perchè nella classe Object non c'è il metodo compareTo...e quindi come dovrei fare??
infatti,io ho provato a utilizzare  comparable ma mi da alcuni errori
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #9 on: 29-03-2009, 15:55:28 »

scusate io volevo provare a fare una lista di oggetti generici...solo che nel momento in cui (ad esempio per la ricerca ordinata,o la cancellazione di una chiave ecc) devo comparare gli oggetti ho dei problemi....perchè nella classe Object non c'è il metodo compareTo...e quindi come dovrei fare??
infatti,io ho provato a utilizzare  comparable ma mi da alcuni errori
Quello che febos voleva dire, è che se usi i generics puoi imporre che la tua lista contenga soltanto Comparable, e quindi tutti gli oggetti che hai implementano il metodo compareTo.
Vero?
potresti spiegarti meglio ?non ho capito bene quello che vuoi dire
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
feboss
Guest
« Reply #10 on: 29-03-2009, 16:43:43 »

vuoi confrontare 2 object.
Ma in base a cosa un object è più o meno, di un altro?

in 2 Integer è più chi ce l'ha più grosso(il numero)  [Emoticon] Asd
ma 2 o più object in base a cosa dovrebbe ordinarteli?

Comparable è un generico che ha implemento compareTo
quando fai l'inserimento
Code:
inserisciOrdinato(E valore)
visto che E è di tipo Comparable è come se fosse
Code:
inserisciOrdinato(Comparable valore)
è chiaro, in questo caso, che devi passare un oggetto che abbia implementato compareTo
se vuoi proprio passare un oggetto devi castarlo
Code:
L.inserisciOrdinato((String)oggetto);
« Last Edit: 29-03-2009, 17:05:11 by feboss » Logged
djjeck
Matricola
*
Offline Offline

Gender: Male
Posts: 89


Ho una donna nuda per avatar. Non c'era di meglio.


WWW
« Reply #11 on: 29-03-2009, 18:09:09 »

Il modo più semplice e naturale è implementare una lista che anziché prendere Object prende Comparable.
Non è a questo che servono i generics (né so quanto e come li fate), e magari lasciali fuori per adesso.

In parole povere, se implementi una classe lista che ha un metodo sort, allora per coerenza quella lista deve contenere elementi ordinabili tra loro. Quindi è più corretto utilizzare esclusivamente parametri di tipo Comparable.
Prova così, che errori hai?
Logged
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


File reality.sys corrupted, Reboot Universe? Y/N


« Reply #12 on: 30-03-2009, 18:48:06 »

ah ok io stavo seguendo solo l'esempio del prof..adesso provo così e vediamo che succede 
Logged

L'odrine delle lttere dnetro una praorla non è ipmortatne, la sloa cosa ipmortatne è che la pmria e l'utlima ltteera sinao nel potso giutso. Il rseto può essree in un dsiodrine più totlae e voi ptoerte smerpe lggeree sneza porblmea.
LtWorf
Forumista Esperto
****
Offline Offline

Posts: 1.079

Ogni cosa da me scritta è da intendersi come opinione personale e non come dato di fatto. Anche le eventuali dimostrazioni matematiche da me scritte saranno opinioni personali e quindi dovranno venire dimostrate da una terza parte di fiducia


WWW
« Reply #13 on: 31-03-2009, 12:47:24 »

A livello di codice, avendo opportunamente definito la classe Nodo, una lista è una istanza della classe Lista, che ha alcuni metodi utili (come getSize (), getHead (), ecc...) ed in essa è sufficiente un unico riferimento a Nodo per definire la testa della lista (il resto dei nodi sarà accessibile a cascata applicando getNext () sui nodi a partire dalla testa).
 

Questa è una lista linkata. Una lista è una struttura che offre operazioni di inserimento, rimozione, e recupero dei dati. I dettagli implementativi sono a piacere. In Java esiste una ArrayList, una LinkedList... Hanno velocità diverse su operazioni diverse. Dipende dall'utilizzio medio previsto la lista che si va a scegliere.
Logged

There are some OO programming languages. I will create the first -_-' language.

LtWorf
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #14 on: 31-03-2009, 15:06:25 »

ooooooook grazie a tutti ho risolto il mio problema con la lista.si spera di riuscire a passare questa materia per tempo
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
Pages: [1] 2   Go Up
Print
Jump to: