Алгоритм для генерации кодов двоичных префикс «N»

Код префикса - это набор кодов, таких как код не является префиксом другого кода. Например, следующий набор представляет собой префикс код:

10
11
000
001
0100
0101
0110
0111

с N = 8 элементами. Я думаю, что они обычно создаются с каким-то типом дерева Хаффмана.

Мой вопрос: Можете ли вы помочь мне создать функцию, которая будет генерировать код бинарного префикса с участниками «n»?

Что-то вроде этого:

список GenerateBinaryPrefixcodes (int n);

Кроме того, требование заключается в том, что он является «оптимальным» в том смысле, что общая сумма битов минимизируется.

Я бы предпочел ответ в C / C ++ / C # / что-то подобное. Это не на самом деле домашнее задание, но я пометил его таким образом, потому что это звучит так, будто это будет хорошая проблема HW.

Спасибо!

5
задан user807566 6 September 2011 в 15:54
поделиться