Mi sono imbattuto in questa domanda in uno dei corsi sugli algoritmi di Coursera e mi sono reso conto che non ho idea di come farlo. Ma ancora, ho qualche idea a riguardo. La prima cosa che mi viene in mente è stata l'utilizzo di bit set ottimizzati (come Java BitSet
) per ottenere il nodo di mappatura key -> color
. Quindi, tutto ciò di cui abbiamo bisogno è allocare un set di un bit per l'intero albero e usarlo come fonte di informazioni sul colore. Se non ci sono elementi duplicati nell'albero, dovrebbe funzionare.Come salvare la memoria quando si memorizzano le informazioni sul colore in Alberi rosso-nero?
Sarebbe felice di vedere le idee di altri su questo compito.
Hai assolutamente ragione che questo è l'approccio più comune. Tuttavia, in Java, questo non è possibile poiché Java non espone i bit dei suoi puntatori. L'OP potrebbe usare Java, anche se non sono sicuro che sia così. – templatetypedef
@templatetypedef La domanda non ha preso di mira esplicitamente Java, ha semplicemente menzionato una struttura dati simile a quella di Java, quindi potrebbe essere o non essere il caso. –
Giusto, non intendevo Java come obiettivo ma mi aspettavo una soluzione portatile (senza questi dettagli nudi metall). Ad ogni modo, non riesco nemmeno a capire questa risposta. @AlexeyFrunze, potresti spiegare l'idea più dettagliata (ad esempio in C e puntatori a 4 byte)? –