Opened 7 years ago

Closed 6 years ago

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

Домашнее задание #2

Reported by: logunov.aleksandr Owned by: rutsky,grabovoy.philipp
Priority: проверка Milestone: ha2-milestone2
Component: HA#2 huffman Version: 1.0
Keywords: Cc: sinesight@…

Description

Алгоритм Хаффмана.

Change History (4)

comment:1 Changed 7 years ago by logunov.aleksandr

Component: HA#1 matricesHA#2 huffman

comment:2 Changed 6 years ago by Vladimir Rutsky

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

Замечания:

  1. Используйте сравнение std::string, вместо strcmp: if (std::string(argv[arg_id]) == "-c").
  1. Cделайте метод HuffmanCoder::print_codes() константным.
  1. Зачем вы включаете в huffman.hpp <cstring>, <iostream>, <stdexcept>?
  1. node.is_leaf эквивалентно !node.link[0] && !node.link[1]? Замените поле is_leaf на метод, который будет проверять указатели на детей на nullptr.
  1. Передавайте cipher в HuffmanCoder(Cipher cipher) по константной ссылке, чтобы избежать копирования (кстати, я не вижу, где вы бы использовали этот конструктор).
  1. Передавайте node в void populate_table(HuffmanNode *node, std::string &code, CodingTable &decoding_table) константным.
  1. Вместо pair<pair<...>> в std::set<std::pair<std::size_t, std::pair<std::uint8_t, HuffmanNode*>>> free_nodes вы можете использовать std::tuple.

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

comment:3 Changed 6 years ago by logunov.aleksandr

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

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

Спасибо за замечания, исправил. Конструктор HuffmanCoder(Cipher cipher) удалил.

comment:4 Changed 6 years ago by Vladimir Rutsky

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

Замечания:

  1. При распаковке вы выводите в качестве размера сжатых данных просто размер входного файла.

Решение зачтено.

Note: See TracTickets for help on using tickets.