Nick Neim
13-07-2011, 08:57
Salve a tutti :)
Devo implementare un hashset template con liste di collisione, ovviamente senza usare container della std.
Come prima cosa mi sono creato una classe template Lista con i suoi forward iterator.
Ogni lista è formata da nodi concatenati, quindi aumenta di un elemento ad ogni inserimento.
Ho testato gli iteratori e sembrano funzionare a dovere.
A questo punto ho iniziato a definirmi la classe hahset vera e propria, formata in pratica da un array di puntatori a Lista, di dimensione fissata scelta a costruzione.
Anche qui nessun particolare problema...senonchè arrivo al momento in cui devo definirmi gli iteratori(avrei scelto anche qui i forward).
Vorrei che gli iteratori mi ritornassero gli elementi template presenti nelle Liste di collisione, ma non riesco a capire come faccio a far "scorrere" l'iteratore in due direzioni...
In pratica penso che dovrei avere due iteratori, uno che scorre l'array di puntatori, e l'altro che scorre sulla lista puntata dal primo iteratore. Quando ho finito di scorrere la lista, incremento l'iteratore dell'array e scorro la seconda lista e cosi via.
Però quando cerco di implementare tutto sto concetto non riesco proprio a proseguire, potete darmi una mano?
Grazie a tutti :D
Devo implementare un hashset template con liste di collisione, ovviamente senza usare container della std.
Come prima cosa mi sono creato una classe template Lista con i suoi forward iterator.
Ogni lista è formata da nodi concatenati, quindi aumenta di un elemento ad ogni inserimento.
Ho testato gli iteratori e sembrano funzionare a dovere.
A questo punto ho iniziato a definirmi la classe hahset vera e propria, formata in pratica da un array di puntatori a Lista, di dimensione fissata scelta a costruzione.
Anche qui nessun particolare problema...senonchè arrivo al momento in cui devo definirmi gli iteratori(avrei scelto anche qui i forward).
Vorrei che gli iteratori mi ritornassero gli elementi template presenti nelle Liste di collisione, ma non riesco a capire come faccio a far "scorrere" l'iteratore in due direzioni...
In pratica penso che dovrei avere due iteratori, uno che scorre l'array di puntatori, e l'altro che scorre sulla lista puntata dal primo iteratore. Quando ho finito di scorrere la lista, incremento l'iteratore dell'array e scorro la seconda lista e cosi via.
Però quando cerco di implementare tutto sto concetto non riesco proprio a proseguire, potete darmi una mano?
Grazie a tutti :D