I'm looking into implementing LZW compression in C++, and not sure of the best dictionary implementation.
Hash table made sense, but I don't understand how I would be able to 'reassign' values. If the table gets full, I need to be able to start overwriting previous (oldest) multi-char dictionary entries. Hash table would require me to keep track of these, find it, remove it, and then insert the new one.
Any suggestions?