salve a tutti,
sto cercando di creare un metodo che cancelli un elemento di una lista nella posizione da me indicata.
La lista è composta da metodi e un campo testa di tipo Node; la classe Node è invece composta da un campo cargo di tipo int e un campo next di tipo Node, più svariati metodi compresi setters e getters.
Ho scritto un metodo che serve a cancellare un determinato Node nella posizione n-esima:
sul libro, su questo forum e su internet in generale ho trovato metodi più veloci del mio, ma non riesco ad applicarli al mio caso. Mi spiego meglio: mi sembra di aver scritto praticamente l'essenziale, qualcuno è in grado di spiegarmi se potevo fare un qualcosa di molto più semplice e veloce?codice:// cancellazione del nodo in posizione n public boolean ErasePosition( int pos ) { boolean trovato = false; // scorro gli elementi if( testa == null ) // caso lista vuota { trovato = false; this.PrintList(); } else { if( pos == 1 ) // caso primo elemento { testa = testa.GetNext(); trovato = true; this.PrintList(); } else if( pos > 1 ) { Node previous = testa; Node temp = testa.GetNext(); while( temp != null && pos > 2 ) { pos--; previous = temp; temp = temp.GetNext(); } previous.SetNext( temp.GetNext() ); this.PrintList(); trovato = true; } }return trovato; }
grazie in anticipo