Opened 4 years ago
Closed 4 years ago
#952 closed ожидаются исправления (задача сдана)
HW #3
Reported by: | Tarabonda German | Owned by: | Tarabonda German |
---|---|---|---|
Component: | HW #3 (Huffman) | Version: | 2.0 |
Keywords: | Cc: |
Description
Change History (2)
comment:1 Changed 4 years ago by
Owner: | changed from Дмитрий Свиридкин to Tarabonda German |
---|---|
Type: | ожидается проверка → ожидаются исправления |
comment:2 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Note: See
TracTickets for help on using
tickets.
файл из 16 букв 'a': результат архивирования-разархивирования не совпадает с исходным файлом.
Файл из 256 различных байт: результат архивирования-разархивирования не совпадает с исходным файлом.
Почему бы это не сделать в конструкторе?
Все файлы надо открывать в бинарном режиме.
std::shared_ptr<HuffmanNode> node(new HuffmanNode(it->first, it->second));
std::make_sharedСделать все поля публичными в дереве -- это вы здорово придумали. Но нет. Давайте по-нормальному. Зачем метод makeTree? используйте конструктор. priority_queueu точно полем дерева быть не должна.
У вас везде умные указатели. Зачем в дереве самописный деструктор?
Что за Header? куда его читают, куда его создают? Почему дерево по неконстантной ссылке?
Я б sizeof больше доверял. И CHAR_BIT из cstdlib
Сдвиги. Знание значений степеней двойки, конечено, полезно, но не тут. if тоже не нужен
Отделите логику накопления статистики от построения дерева. И кодирование от записи битиков. Для чтения и записи битиков сделайте отдельные обертки.
Накапливать по одному битику и каждый раз искать в таблице символов -- карайне неэффективно. Используйте дерево: переходите от узла к узлу; уперлись в лист -- отдайте байт.
end-to-end тесты? Тесты CLI с неверными аргументами?
3 + 5 + 3 + 6.5