Ciao a tutti, vi pongo il mio problema:
Il mio codice è composto da due classi, quella esterna che definisce la lista concatenata e quella interna che definisce il singolo nodo. Non riesco a fare il metodo cloneRicorsivo(), mi da errore quando cerco di copiare il valore del nodo da clonare in quello clonato.
Qualcuno sa aiutarmi? Grasieeee
codice:public class ListaConcatenata { private class ListElem { private int cargo; private ListElem next; public ListElem () { cargo = 0; next = null; } public ListElem (int cargo) { this.cargo = cargo; next = null; } public ListElem (int cargo, ListElem next) { this.cargo = cargo; this.next = next; } public int getCargo () { return cargo; } public ListElem getNext () { return next; } public void setCargo (int cargo) { this.cargo = cargo; } public void setNext (ListElem next) { this.next = next; } public ListElem cloneRicorsivo (ListElem nodo) { nodo.cargo = cargo; if (next != null) { ListElem nuovoNodo = new ListElem(); nodo.setNext(nuovoNodo); next.cloneRicorsivo(nodo); } return nodo; } } private ListElem first; public ListaConcatenata () { first = null; } public int getFirst () { return first.getCargo(); } public ListElem getFirstLE () { return first; } public void setFirst (ListElem primo) { first = primo; } public void insert (int val) { ListElem nuovo = new ListElem(val); if (first == null) first = nuovo; else { nuovo.setNext(first); first = nuovo; } } public ListaConcatenata cloneRicorsivo () { ListaConcatenata miaListaClone = new ListaConcatenata (); if (first == null) return miaListaClone; else { first.cloneRicorsivo(miaListaClone.first); } return miaListaClone; } public void stampa () { if (first == null) System.out.print("Lista vuota"); else { ListElem iterator = first; while (iterator != null) { System.out.print(iterator.getCargo() + " "); iterator = iterator.getNext(); } } } public static void main (String [] args) { ListaConcatenata miaLista1 = new ListaConcatenata (); miaLista1.insert(8); miaLista1.insert(7); miaLista1.insert(6); miaLista1.insert(5); miaLista1.insert(4); miaLista1.insert(3); miaLista1.insert(2); miaLista1.insert(1); ListaConcatenata clone = miaLista1.cloneRicorsivo(); clone.stampa(); } }

Rispondi quotando