Я пытаюсь создать дерево Хаффмана, вопрос, который я прочитал, для меня очень странный, он выглядит следующим образом:
Учитывая следующую структуру данных:
struct huffman { unsigned char sym; /* symbol */ struct huffman *left, *right; /* left and right subtrees */ };
напишите программу, которая принимает имя двоичного файла в качестве единственного аргумента, строит дерево Хаффмана этого файла, предполагая, что атомы (элементарные символы) являются 8-битными беззнаковыми символами, и печатает дерево, а также словарь. должно выполняться только с помощью malloc(), а сортировка может выполняться с помощью qsort().
Здесь меня смущает то, что для написания программы для создания дерева Хаффмана нам просто нужно сделать следующие вещи:
- Нам нужно взять массив частот (это может быть
Farray[]={.......}
) - Отсортируйте его и добавьте два самых маленьких узла, чтобы сформировать дерево, пока не останется 1 последний узел (который является головным).
Теперь возникает вопрос: зачем и где нам нужны эти беззнаковые данные char? (какой тип беззнаковых данных char нужен для этого вопроса, я думаю, что для отображения дерева Хаффмана достаточно только частоты)?