Opened 7 years ago
Closed 6 years ago
#221 closed ожидается проверка (задача сдана)
ДЗ №2. Хаффман
Reported by: | kaminskij.vasilij | Owned by: | rutsky,grabovoy.philipp |
---|---|---|---|
Priority: | проверка | Milestone: | ha2-deadline |
Component: | HA#2 huffman | Version: | 1.0 |
Keywords: | Cc: |
Description
Здравствуйте!
Прошу проверить мою работу.
С уважением,
Каминский Василий
Change History (8)
comment:1 Changed 6 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 6 years ago by
Milestone: | ha2-milestone2 → ha2-deadline |
---|
Ещё замечания:
- Используйте сравнение
std::string
вместоstrcmp
.
- В качестве типа исключения используйте класс и ловите его по константной ссылке, но не указатель на класс (сейчас генерация такого исключения приводит к утечке памяти, т.к. вы не освобождаете выделенную память).
- При сериализации целочисленных типаов используйте типы, размеры которых фискированы, например
std::uint32_t
вместоint
. Типint
имеет разный размер на разных платформах, что делает ваши архивы непереносимыми.
- Используйте стабильный компаратор в
std::priority_queue
.std::priority_queue
не гарантирует порядок в котором элементы с одним и тем же приоритетом будут извлечены --- при сжатии порядок может оказаться одним, а при разжатии другим.
comment:3 Changed 6 years ago by
Здравствуйте!
Спасибо за ваши замечания, исправил. Также извиняюсь за небольшую задержку, так как проверка оказалось для меня неожиданной в зачётный период.
С уважением,
Каминский Василий
comment:4 Changed 6 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
comment:5 Changed 6 years ago by
Василий, вы добавили в компаратор для priority_queue
сравнение по символу, но этот символ всегда инициализирован нулём для не-листьев, тем самым построение дерева всё ещё недетерминировано.
comment:6 Changed 6 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
Исправьте, пожалуйста, в ближайшее время.
comment:7 Changed 6 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
Исправил на строгий порядок путем сравнения номеров нод n - времени создания, которое в программе строго детерминировано.
comment:8 Changed 6 years ago by
Resolution: | → задача сдана |
---|---|
Status: | new → closed |
Вместо глобальной переменной стоит использовать что-то локальное, или детерминированное из-за других свойств. Например, можно в узлах не-листьях в качестве символа хранить минимальное значения символа в поддеревьях.
Глобальные переменные имеют ряд проблем, например, счетчик может переполнится, или ваш модуль нельзя использовать из нескольких потоков.
Решение зачтено с небольшим минусом.
Замечания:
nullptr
вместоNULL
.<queue>
стоит включить вhuffman.cpp
, т.к. он не требуется вhuffman.hpp
и пользователямhuffman.hpp
.Исправьте, пожалуйста, в ближайшие 60 часов.