Ciclo in lista concatenata
Propongo questo problema carino: descrivere un algoritmo che, in spazio costante e tempo lineare, decida se in una lista concatenata unidirezionale è presente un ciclo o no.
ps: un ciclo in una lista concatenata è un sottoinsieme della lista tali che ogni nodo punta al successivo e l'ultimo punta al primo.
ps: un ciclo in una lista concatenata è un sottoinsieme della lista tali che ogni nodo punta al successivo e l'ultimo punta al primo.
Risposte
non ho capito.. bisogna far vedere che è una lista circolare???
che si intende per 'spazio costante' ?
"codino75":
che si intende per 'spazio costante' ?
suppongo debba essere fatto "sul posto", ovvero senza utilizzare strutture aggiuntive.
Sì, le complessità in spazio e tempo riguardano la memoria utilizzata e il tempo richiesto per la computazione.
Sì, è come dice Tipper, chiaramente.
@simo_83
Non proprio una lista circolare. La definizione che ho dato mi sembra chiara: dire se esiste un _sottoinsieme_ di nodi di una lista concatenata etc..
@simo_83
Non proprio una lista circolare. La definizione che ho dato mi sembra chiara: dire se esiste un _sottoinsieme_ di nodi di una lista concatenata etc..
"Tipper":
Sì, le complessità in spazio e tempo riguardano la memoria utilizzata e il tempo richiesto per la computazione.
intendi dire che la memori autilizzata deve essere costante rispetto alle dimensioni della lista?
cioe' lo stesso spazio qualunque sia la lunghezza della lista?
come e' possibile tutto cio'?
edit: ah, forse inizio a capire...