Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#82 closed ожидается проверка (дубликат)

h2 attempt 2

Reported by: Luchko Serega Owned by: Vladimir Rutsky
Priority: проверка Milestone:
Component: HA#2 huffman Version:
Keywords: Cc:

Description

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

1) Папка с решением должна называться ha2, а у вас называется hw2.
Решено
2,3) Не используйте глобальные переменные:
Перенесите это состояние в члены класса Huffman (и сделайте методы endode/decode не статическими).
Сделал
4) Передавайте объекты, которые не планируете модифицировать по константной ссылке:
Сделал
5) Не используйте using namespace std; в заголовочном файле --- в противном случае вы "загрязняете"
Сделал
6) Используйте тип size_t для индексов и размеров:
Поправил
7) huffman_algorithm не возвращает значения, если вызывается от пустого набора символов.
На практике этого не проиходит, т.к. вы не вызываете этот метод на пустом наборе, но компилятор выдаёт предупреждение.
Поправил
8) При кодировании/декодировании пустого файла вы выводите, что доп. данные занимают 8 байт, хотя вы их не записываете.
Сделал
9) std::priority_queue не гарантирует, что при добавлении элементов с одним приоритетом они будут извлечены
в каком-то определённом порядке, поэтому теоретически ваше решение может строить различные деревья
при кодировании и декодировании, если у каких-то символов одинаковый частота встречаемости, при приведёт
к ошибчному декодированию.
Добавил поля accumulator в класс Tree, теперь поддерево помнить все символы в себе, и два поддерева можно уникально
отличить используя это переменную, даже если частоты у них совпали.
10) Вместо -output должен поддерживаться флаг --output.
Сделал
11) Нет необходимости сохранять количество символов в исходном файле при сжатии
--- вы можете его вычислить просуммировав количества каждого встречающегося символа.
Сделал
12) Ваше решение очень похоже на решение Александра Лучко.
Да, мы с ним живём в одной комнате. И когда писали код, то объяснили друг другу что как можно решить.
Ссылки на ввод вывод, на написание бит в стаковерфлов юзали те же. Да и на вывод.
=======================
Попытался успеть в 60 часов.

Change History (2)

comment:1 Changed 7 years ago by Luchko Serega

Resolution: дубликат
Status: newclosed

comment:2 Changed 7 years ago by Vladimir Rutsky

Milestone: ha2-milestone2

Milestone ha2-milestone2 deleted

Note: See TracTickets for help on using tickets.