Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    4

    Errore Esecuzione Coda con rappresentazione collegata

    Ragazzi ho implementato l'Interfaccia Coda<T> tramite la classe CodaCollegata<T> che riporto di seguito:

    package coda;

    public class CodaCollegata<T> implements Coda<T> {
    private Record<T> inizio = null;
    private Record<T> fine = null;

    @Override
    public void dequeue() {
    if (isEmpty())throw new EccezioneCodaVuota("coda vuota");
    inizio=inizio.succ;

    }

    @Override
    public void enqueue(T e) {
    if (isEmpty()){
    inizio = new Record(e);
    inizio.succ=fine;
    }
    else {
    Record<T> temp = new Record<T>(e);
    fine.succ=temp;
    fine=temp;
    }
    }

    @Override
    public T first() {
    if(isEmpty())
    return null;
    return (T) inizio.elem;

    }

    @Override
    public boolean isEmpty() {
    return inizio == fine;
    }

    public static void main(String[] args) {
    Coda<String> test = new CodaCollegata<String>();
    test.enqueue("b");
    test.enqueue("c");


    System.out.println(test.first());
    }
    }

    Se inserisco un solo elemento non ho nessun errore in fare di esecuzione invece se inserisco il secondo mi da questo errore sempre in fase di esecuzione

    Exception in thread "main" java.lang.NullPointerException
    at coda.CodaCollegata.enqueue(CodaCollegata.java:22)
    at coda.CodaCollegata.main(CodaCollegata.java:42)


    riporto anche la classe Record<T>
    package coda;

    public class Record<T> {
    public Object elem;
    public Record succ;

    public Record(Object elem){
    this.elem=elem;
    succ=this;
    }


    }
    vi ringrazio anticipatamente

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    105
    Ciao con il secodno elemento il metodo isEmpty torna false OK.
    Quindi va nell else dell enqueue, dove fine e null.

    Ti servono davvero i due record inizio e fine?? record ha gia la ref. al successivo..
    Cmq se li vuoi mantenere il primo elemento che entra e sia l inizio che la fine

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.