Opened 6 years ago

Closed 6 years ago

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

HA #2

Reported by: Александр Хворов Owned by: rutsky,grabovoy.philipp
Priority: проверка Milestone: ha2-deadline
Component: HA#2 huffman Version:
Keywords: Cc:

Description

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

Посмотрите, пожалуйста, второе домашнее задание. Тесты проходит, valgrind не ругается, в пять секунд укладываюсь.

Change History (6)

comment:1 Changed 6 years ago by Александр Хворов

Milestone: ha2-milestone2

comment:2 Changed 6 years ago by Филипп

Milestone: ha2-milestone2ha2-deadline
Type: ожидается проверкаожидаются исправления

Привет!

Замечания:

  1. У статистик есть несогласованность: при декомпрессе первое число (размер сжатых данных) на единицу больше того, что получено и сжатии.
  2. Для хранения кодов символов предпочтительно использовать std::vector<bool> -- контейнер хорошо подходит для нулей и единиц.
  3. Константные ссылки там, где возможно: for (Letter letter : letters) { code_map[letter.character] = letter.code; }, main() {... catch(std::string e) ...}, for (std::pair<uint8_t, std::string> pair : string_code) {...}

И стилистически складывать объекты Letter в вектора и по мере построения дерева мержить их -- выглядит не очень просто. Привычнее, конечно, обычное бинарное дерево: struct LetterNode { ... LetterNode *left, *right; ...}.

comment:3 Changed 6 years ago by Александр Хворов

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

К сожалению, не получилось реализовать построение кодов при помощи дерева, но необходимая асимптотика достигнута, так как используется куча. Для хранения кодов остановился на строках, потому что так и не понял, как сделать вектор быстрым. Остальное исправил.
Долго пытался написать через дерево, но так и не вышло, а хочется все-таки сдать задание, поэтому оставил старое решение. Но и оставил код, относящийся к дереву, в комментариях. Если будет время и возможность, посмотрите, пожалуйста, что делаю не так.

comment:4 Changed 6 years ago by Александр Хворов

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

comment:5 Changed 6 years ago by Александр Хворов

Закоммитил еще давно, но забыл изменить тип тикета.

comment:6 Changed 6 years ago by Филипп

Resolution: задача сдана
Status: newclosed
Note: See TracTickets for help on using tickets.