Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

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

HA#2 huffman

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

Description


Change History (4)

comment:1 Changed 7 years ago by Vladimir Rutsky

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

Замечания:

  1. Бросайте исключения по значению:
//throw new Huffman::Exception("Error! Incorrect number of commands");
throw Huffman::Exception("Error! Incorrect number of commands");

а ловите их по константной ссылке:

catch (const Huffman::Exception & exception) 

В противном случае вам нужно позаботиться, чтобы кто-то освободил память, выделенную для исключения.

  1. Используйте nullptr или 0, вместо NULL.
  1. Если вы всегда для работы создаёте массив table фиксированного размера в куче, стоит сделать его обычным массивом фиксированного размера как член класса:
int table[256].
  1. Используйте типы фиксированного размера при сериализации, например, std::uint32_t, вместо int. int разного размера на разных платформах, а uint32_t всегда состоит из 32-х бит.
  1. std::priority_queue не гарантирует, что при добавлении элементов с одним приоритетом они будут извлечены в каком-то определённом порядке, поэтому теоретически ваше решение может строить различные деревья при кодировании и декодировании, если у каких-то символов одинаковая частота встречаемости, это приведёт к ошибчному декодированию.

Сделайте сравнение в cmp стабильным.

  1. Вот эта часть с delete this; очень странная, что вы хотите этим сказать?
Huffman::Node::~Node() 
{
	if (this->l != NULL) {
		delete this->l;
	}
	if (this->r != NULL) {
		delete this->r;
	}
	delete this;
}
  1. Вы не освобождаете память, выделенную для дерева.
  1. Вы сдали решение на день позже второго срока сдачи.

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

comment:2 Changed 7 years ago by panchenko.anton

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

comment:3 Changed 7 years ago by Vladimir Rutsky

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

Замечания:

  1. Замечание про стабильный порядок элементов в очереди исправлено не до конца: вы теперь стабильно сравниваете листья строящегося дерева добавив в предикат сравнения символ в листе, но по-прежнему не стабильно сравниваете не листья, т.к. у них символы одинаковые (с кодом 0).

Решение зачтено, но с минусом.

comment:4 Changed 7 years ago by Vladimir Rutsky

Milestone: ha2-deadline

Milestone ha2-deadline deleted

Note: See TracTickets for help on using tickets.