Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    problema code uguali

    ciao
    sto usando java da pochissimo all'unive e ho un problemino per un esercizio devo controllare 2 code e vedere se sono uguali, ovvero se hanno la stessa lunghezza N e per ogni i=1...N, se Q1[i] = Q2[i].

    il mio problema è:
    NOTA: Il metodo non deve distruggere le code in ingresso
    public static boolean codeUguali(QueueArray Q1, QueueArray Q2) {…}
    Kalton
    -------------------
    www.kalton.it - www.kalton.cavarzere.it

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: problema code uguali

    Originariamente inviato da asdas
    ciao
    sto usando java da pochissimo all'unive e ho un problemino per un esercizio devo controllare 2 code e vedere se sono uguali, ovvero se hanno la stessa lunghezza N e per ogni i=1...N, se Q1[i] = Q2[i].

    il mio problema è:
    NOTA: Il metodo non deve distruggere le code in ingresso
    public static boolean codeUguali(QueueArray Q1, QueueArray Q2) {…}
    Questa classe QueueArray l'hai fatta tu?? (perché non esiste chiaramente in J2SE) Se l'hai fatta tu dovresti anche mostrare come l'hai fatta, perché altrimenti è impossibile dire/spiegare cosa fare per verificare se le code sono uguali.

    Non so se ti è stato imposto di usare questo metodo codeUguali come l'hai scritto. Io ti suggerirei di implementare equals() in modo da poter fare semplicemente q1.equals(q2).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    public class QueueArray {

    private static final int MAX=100; // dimensione massima della coda
    private Object[] Q; // la coda
    private int head; // puntatore al primo elemento in coda
    private int tail; // puntatore all'ultimo elemento della coda


    // post: costruisce una coda vuota
    public QueueArray() {
    Q = new Object[MAX];
    head = 0;
    tail = 0;
    }


    // post: ritorna il numero di elementi nella coda
    public int size() {
    return tail - head;
    }



    // post: ritorna true sse la coda e' vuota
    public boolean isEmpty() {
    return (head == tail);
    }

    // post: svuota la coda
    public void clear() {
    head = 0;
    tail = 0;
    }


    // pre: coda non vuota
    // post: ritorna il valore del primo elemento della coda
    public Object front() {
    return Q[head % MAX];
    }


    // pre: value non nullo
    // post: inserisce value in coda se la coda non e' piena
    public void enqueue(Object ob) {

    if (tail - head == MAX)
    return;

    Q[tail % MAX] = ob;
    tail = tail + 1;
    if (head > MAX) {
    tail = tail - MAX;
    head = head - MAX;
    }
    }


    // pre: coda non vuota
    // post: ritorna e rimuove l'elemento il primo elemento in coda
    public Object dequeue() {
    Object temp = Q[head % MAX];
    head = (head + 1);
    return temp;
    }
    }
    Kalton
    -------------------
    www.kalton.it - www.kalton.cavarzere.it

  4. #4
    Come suggerito da andbin potresti implementare il metodo equals all'interno di QueueArray ed aggiungere sempre in tale classe un metodo getQueue che ritorna l'array Q della classe:


    codice:
    
    public Object[] getQueue(){
            return Q;
    }
    
    
    public boolean equals(QueueArray queue2){
         int n = 0;
         Object[] Q2 = queue2.getQueue();
         if( size() != queue2.size()){
              return false;
         }else{
              for(int i=0;i<size();i++){
                   if(!Q[i].equals(Q2[i])){
                        return false;
                   }
              }
         }
         return true;
    }
    per utilizzarlo ad esempio:

    codice:
    QueueArray uno = new QueueArray();
    QueueArray due = new QueueArray();
    String a = "aaa";
    uno.enqueue(a);
    due.enqueue(a);
    due.enqueue(a);
    System.out.println(uno.equals(due));
    Al mio segnale... scatenate l'inferno!

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.