Lista concatenata null point

di il
4 risposte

Lista concatenata null point

Salve ragazzi sto tentando di fare una lista concatenata ma non riesco a fare la rimozione e in più il metodo add aggiunge sempre l'ultimo elemento se ciclo il metodo da furoi infatti ho n volte l'ultimo valore che è stato passato come parametro .vi linko il codice completo il problema mi si presenta nel metodo rimuovi

package LINKEDLIST;

public class linkedList<E> {

	private nodo<E> fist;
	nodo <E>last;


	public linkedList() {

		fist =null;
		last  =null;

	}

	public void addElement(E info){
		nodo<E> app,copiaFist;
		copiaFist= new nodo<E>();
		copiaFist = fist;
		if(fist==null){
			app = new nodo<E>(info,fist);
			fist = new nodo<E>(null,app);
		}
		else
		{
			while(copiaFist.next!=null)
				copiaFist = copiaFist.next;
			app = new nodo<E>(info,last);
			copiaFist.next=app;
		}
	}
	public E rimuoviElement(){
		E app;
		nodo<E> copyFist=fist;
		if(fist==null) throw new LinkedListVuotaExpetion("la lista è vuota");
		else{
			while(copyFist.next!=null){
				copyFist =copyFist.next;
			}
			 app =copyFist.next.getInfo();
			copyFist.next=last;
			
		}
		return app;

	
	}
}


e se avete bisogno di vedere anche la classe nodo la allego qui :

package LINKEDLIST;

public class nodo<E> {

	private E info;
	nodo<E> next;
	public nodo() {
	this(null,null);
	}
	public nodo(E info, nodo<E> next) {
		this.info=info;
		this.next = next;
	}
	public E getInfo() {
		return info;
	}
	public void setInfo(E info) {
		this.info = info;
	}
	public nodo<E> getNext() {
		return next;
	}
	public void setNext(nodo<E> next) {
		this.next = next;
	}
	
	
	
}


4 Risposte

  • Re: Lista concatenata null point

    broke31 ha scritto:


    salve ragazzi sto tentando di fare una lista concatenata ma non riesco a fare la rimozione e in più il metodo add aggiunge sempre l'ultimo elemento se ciclo il metodo da furoi infatti ho n volte l'ultimo valore che è stato passato come parametro .
    Rispondo con una domanda ma più che altro perché vorrei farti "riflettere": sei sicuro che serva tutto quel codice in addElement?
  • Re: Lista concatenata null point

    Umhh riflettendo il fist e il last ci vogliono per forza perché il mio prof ha detto che devono essere messi, potrei far in modo da non distinguere più se sto inserendo per la prima volta oppure all'n-esimo inserimento, anche se ricordo vagamente che nella sua spiegazione faceva distinzione anche su questo aspetto tu cosa ne pensi ?
  • Re: Lista concatenata null point

    broke31 ha scritto:


    il fist e il last ci vogliono per forza perché il mio prof ha detto che devono essere messi
    Il minimo è tenere solo la testa. Se tieni testa+coda, complica per certi versi ma semplifica alcuni scenari (es. aggiunta in coda).

    broke31 ha scritto:


    potrei far in modo da non distinguere più se sto inserendo per la prima volta oppure all'n-esimo inserimento, anche se ricordo vagamente che nella sua spiegazione faceva distinzione anche su questo aspetto tu cosa ne pensi ?
    Una mia implementazione buttata giù al volo ...
    public class LinkedList<E> {
        private Node<E> firstNode;
        private Node<E> lastNode;
    
        public void addLast(E value) {
            Node<E> node = new Node<E>(value, null);
    
            if (firstNode == null) {
                firstNode = node;
            } else {
                lastNode.setNext(node);
            }
    
            lastNode = node;
        }
    }
    Il mio Node è sostanzialmente come il tuo nodo (il contenuto l'ho chiamato 'value' invece che 'info').
    Che deduci?
  • Re: Lista concatenata null point

    Che giustamente avendo il puntatore all'ultimo nodo è inutile far partire quel ciclo while ma posso direttamente agganciare all'ultimo nodo
Devi accedere o registrarti per scrivere nel forum
4 risposte