Частотные деревья: способ хранения

Fofa

   Есть ли еще какие-нибудь, кроме деревьев Хафмена?
  И главный вопрос: допустим, я обработал файл, получил частотное дерево, теперь хочу обработать другой файл, в котором ключи встречаются примерно с теми же частотами. Перед тем, как обрабатывать другой файл, я хочу сохранить дерево. Как это сделать? Понятно, что можно использовать, например, текстовый файл, из которого затем считать информацию о структуре дерева, но может есть другие, более удобные и стандартные способы?
   Язык, на котором прогаю, — питон.

yroslavasako

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

Fofa

распределение частот же должно быть для конкретных ключей, так?
можно немного поконкретнее?

yroslavasako

Если набор ключей известен заранее (алфавит то просто записываешь в бинарном виде double для их частот. Если алфавит неизвестен, сначала помещаешь алфавит. Тут всё зависит от вида ключа (постоянный размер или переменный).
А для каких целей тебе это нужно собственно?

Fofa

  Задачку одну попросили сделать.
  Алфавит (набор ключей) неизвестен, по сути — набор цифр (на самом деле—нет, что-то тип ID, но это уже неважно) размер ключей постоянный.
  Кажется, я понял.
  А можно сначала построить дерево Хафмена из одного элемента, а потом добавлять элементы, меняя при необходимости вершины местами в зависимости от частоты встречи ключа?
  Не подскажешь, какой модуль надо взботнуть, чтобы с реализацией дерева не маяться?
  И еще: как хранить это дерево?
Оставить комментарий
Имя или ник:
Комментарий: