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

    [JAVA] Problemi con lista

    Devo creare una semplice lista. in fondo vi scrivo i metodi:

    codice:
    public class MiaLista{
    	private ListElem first;
    
    	private class ListElem {
    	            public int data;
    	            public ListElem next;
        }
         public MiaLista(){
    		first=null;
    
    	}
            public boolean insert(int s){
    		ListElem nuovoElemento=new ListElem();
    		nuovoElemento.data=s;
    
    		if(first!=null)
    			nuovoElemento.next=first;
    		first=nuovoElemento;
    
    		return true;
    	}
    }
    1) Il costruttore MiaLista costruisce un oggetto lista-vuota, inizializzando opportunamente le variabili. Basta creare una lista che punta a null?
    2)Il metodo insert inserisce un nuovo elemento sulla testa della lista. Il campo data di tale nuovo elemento contiene il valore passato in input.

    Il fatto è che, provando ad utilizzare questi due metodi, ricevo una "NullPointerException"...dove sbaglio?
    Grazie

  2. #2
    Scusate, ho editato il codice sopra, ora dovrebbe funzionare

  3. #3
    Devo realizzare un metodo che inserisca un elemento in posizione pos. L'elemento che era già in posizione pos deve quindi essere spostato di 1 e così tutti quelli successivi.
    A prima vista mi sembra corretto, eppure provoca dei risultati strani...penso che saranno i first.next ...

    codice:
    public void insert(int d, int pos){
    
    	if(pos>=0&&pos<=size()){
    		MiaLista cursore=new MiaLista();
    		cursore.first=first;
    		boolean s= insertIntern(d,pos);
    	}
    }
    
    
    	public boolean insertIntern(int d, int pos){
    
              //cont e' dichiarata nella classe MiaLista e inizialmente vale 0
    
    		if(first==null)
    			return false;
    			else
    				if(cont==pos){
    					ListElem nuovoElemento=new ListElem();
    					nuovoElemento.data=d;
    					System.out.println("dato:"+d+"in posizione:"+pos);
    					nuovoElemento.next=first.next;
    					first.next=nuovoElemento;
    					cont=0;
    					return true;
    				}
    				else
    				{
    					cont++;
    					System.out.println(first.data);
    
    					first=first.next;
    					return insertIntern(d, pos);
    				}
    	}
    Prima dell'insert ho questa lista: 5 3 4 3 2
    dopo l'insert con parametri (3,3) questa: 3 3 2 ... come se fossero scomparsi il 5 e il 4. Che pasticcio ho fatto? VVoVe:

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.