Так, а какие файлы называются «большими»?
Навскидку я вижу две проблемы — файлы более 2Гб (переполнение int) и нулевые символы (которым ошибочно не назначается код).
Первая проблема лечится использованием большего типа данных, а вторая таким вот патчем:
void Compressor::buildCodeTable(Node *root)
{
if (root->hasChild())
{
code.push_back(0);
buildCodeTable(root->getChild(true));
code.pop_back();
code.push_back(1);
buildCodeTable(root->getChild(false));
code.pop_back();
} else {
codeTable[letter] = root->getLetter();
}
}