Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    16

    costruzione coda in java

    Buongiorno a tutti,
    devo creare una coda circolare bidirezionale, avendo la soluzione dell'esercizio non riesco a capire i passaggi effettuati.

    Se qualcuno può darmi delucidazioni sarei felice.

    codice:
    public CodaBidirez(E[] dati) {
    NodoCoda t;
    start = new NodoCoda();
    start.dato = dati[0];
    start.puntatoreDx = start.puntatoreSinistra = start;
    t = start;
    for (int i=1; i<dati.length; i++) {
    t.puntatoreDestra = new NodoCoda();
    t = t.puntatoreDestra;
    t.dato = dati[i];
    }
    t.puntatoreDestra = start;
    t = start;
    for (int i=0; i<dati.length; i++) {
    t.puntatoreDestra.puntatoreSinistra = t;
    t = t.puntatoreDestra;
    }
    }
    Grazie mille.

    Fabio

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da pianca90 Visualizza il messaggio
    devo creare una coda circolare bidirezionale, avendo la soluzione dell'esercizio non riesco a capire i passaggi effettuati.
    Innanzitutto sei sicuro che il codice sia corretto e l'hai trascritto correttamente qui sul forum? Perché dal codice risulterebbe che NodoCoda ha un campo puntatoreDx e un puntatoreDestra.

    Comunque il codice prima crea in modo specifico un nodo per il primo elemento, poi fa un ciclo per creare e "incatenare" i nodi per i puntatoreDestra e poi infine un altro ciclo per "incatenare" i nodi per i puntatoreSinistra.

    Però, te lo dico per onestà/sincerità questa soluzione è abbastanza del "piffero".

    P.S. da quanto deduco CodaBidirez è una classe "generica", giusto? Se così allora perché NodoCoda non è generico?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    16
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Innanzitutto sei sicuro che il codice sia corretto e l'hai trascritto correttamente qui sul forum? Perché dal codice risulterebbe che NodoCoda ha un campo puntatoreDx e un puntatoreDestra.
    Errore mio di abbreviazione... unico puntatore puntatoreDestra...
    Comunque il codice prima crea in modo specifico un nodo per il primo elemento, poi fa un ciclo per creare e "incatenare" i nodi per i puntatoreDestra e poi infine un altro ciclo per "incatenare" i nodi per i puntatoreSinistra.
    E' questo il ciclo for che non capisco....

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da pianca90 Visualizza il messaggio
    E' questo il ciclo for che non capisco....
    Prima dell'ultimo for, c'è:

    t = start;

    Quindi t è il primo nodo. Il ciclo scansiona i nodi in avanti (lo vedi bene t = t.puntatoreDestra;).
    Per ciascuno dei nodi va a prendere il nodo successivo (t.puntatoreDestra) e su questo assegna al suo puntatoreSinistra il nodo precedente che è quello corrente.

    Quindi effettivamente "incatena" i nodi tramite i puntatoreSinistra.
    Ultima modifica di andbin; 06-09-2015 a 17:23
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    16
    Grazie mille,
    era proprio la doppia notazione puntata che non mi era chiaro cosa facesse....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.