Ciao a tutti,
Sto studiando l'argomento "Strutture Collegate" in vista dell'esame di informatica che dovrò dare a breve e ho un problema.
L'esercizio in questione chiede:"Date due strutture collegate l1 e l2 distringhe non nulle e non vuote, ordinate inordine crescente, costruire una nuova strutturacollegata ordinata l3 ottenuta dalla fusione di l1e l2, e che non contenga elementi ripetuti(doppioni)."
Ho di conseguenza scritto un metodo verificadoppioni che cerca il NodoLista con l'elemento ripetuto e lo elimina.
Ho pensato (non so se erroneamente) che per eliminare un elemento da una lista è sufficente far si che l'elemento che lo precede punti al successivo (a->b->c diventa a->c) il problema è che non so proprio come farlo...qualcuno puo darmi una mano lavorando sul mio codice (anche se sono consapevole che probabilmente non è "elegante")??
grazie mille in anticipo per la disponibilità e la cortesia!
codice:class NodoLista{ public String info; public NodoLista next; public NodoLista(String s,NodoLista l){ info=s; next=l; } } public class MergeListeArray{ public static void main(String[] args){ int i; String[] a = new String[]{"Cassa","Basket","Cassa","Zelo"}; NodoLista n = new NodoLista(null,null); NodoLista app=n; for(i=0;i<a.length;i++){ app.next = new NodoLista(a[i],null); app=app.next; } System.out.println(verificadoppioni("Cassa",n.next)); } public static NodoLista verificadoppioni(String j,NodoLista y){ NodoLista prec=y; NodoLista succ=y.next; while(y.next!=null) if(y.next.info.equals(j)){ /*come faccio ad eliminare il doppione ovvero "Cassa" spostando il puntatore del NodoLista contenente "Basket" a quello contenente "Zelo"*/ } else y.next=y.next.next; y=y.next;

Rispondi quotando