Opened 6 years ago

Closed 6 years ago

#242 closed ожидается проверка (задача сдана)

Домашнее задание "Хаффман"

Reported by: tereschenko.sergej Owned by: rutsky,grabovoy.philipp
Priority: проверка Milestone: ha2-deadline
Component: HA#2 huffman Version:
Keywords: Cc: tereschenko.sergej

Description

Здравствуйте.

Перепутал даты последнего дедлайна по задаче.
Я понимаю, что баллы за неё уже не получить (хотя для меня это очень критично, так как первая задача у меня не зачтена). Надеюсь, что смогу получить хотя бы отзыв по решению.

Программа проходит все тесты из smoke_test + valgrind.

Change History (3)

comment:1 Changed 6 years ago by Vladimir Rutsky

Type: ожидается проверкаожидаются исправления

Замечания:

  1. В huffman.hpp не самодостаточен, например, вы используете std::string, но не включаете <string>.
  1. Используйте nullptr вместо NULL.
  1. Передавайте аргументы-объекты, которые не должны модифицироваться, по константной ссылке. Например в HuffmanTree(std::string data, std::uint32_t freq). А здесь по константному указателю: bool operator()(HuffmanTree* l, HuffmanTree* r).
  1. Используйте std::vector вместо сырых массивов, например, здесь: std::uint32_t * counter = new std::uint32_t[256]();.
  1. Вывод статистики некорректен: в размер сжатых данных вы включаете размер дополнительных данных.
  1. Используйте стабильный компаратор в std::priority_queue. std::priority_queue не гарантирует порядок в котором элементы с одним и тем же приоритетом будут извлечены --- при сжатии порядок может оказаться одним, а при разжатии другим.

Исправьте, пожалуйста, в ближайшее время.

comment:2 Changed 6 years ago by tereschenko.sergej

Cc: tereschenko.sergej added
Type: ожидаются исправленияожидается проверка

Внёс необходимые исправления (кроме одного).

Не понимаю в чём ошибка в 6 пункте. Компаратор сравнивает пары (частота, символы). Если у нас частоты совпадут, то идёт лексикографическое сравнение по символам, что гарантирует один и тот же порядок.

comment:3 Changed 6 years ago by Vladimir Rutsky

Resolution: задача сдана
Status: newclosed

С пунктом 6 я, видимо, посмотрел не в ту работу --- вы правы, у вас корректная реализация :)

Решение зачтено. Оценка с минусом, из-за поздней сдачи.

Note: See TracTickets for help on using tickets.