Создал класс, который представляет собой односвязный список. Я открываю файл(любой, не только текстовый), PHP: ifstream input; input.open(argv[1], ifstream::binary); и посимвольно считываю его. Каждый новый символ скармливаю PHP: char c; while(!input.eof()){ input.get(c); L->increase(c); } методу "increase" класса, который ищет был ли уже создан элемент списка со статистикой этого символа, если был то количество повторений увеличиваем, если нет то создаем новый. Объект класса имеет такую структуру: PHP: class symbollist{ char val;//кодируемый символ unsigned long long freq;//сколько раз этот символ встречался в файле symbollist *next;//указатель на следующий элемент дальше описаны методы }; и в программе список выглядит примерно так: ВОПРОС: как для отсортированного списка символов построить дерево Хаффмана для создания каждому символу префиксного кода? P.S. каждый раз когда сам пытаюсь написать получается говнецо кривое. P.P.S. если нужен исходник того что уже написано: http://libertypaul.ru/stuff/code.cxx P.P.P.S. в гугл просьба особо не посылать ибо мануалы уже курил, чужие исходники чтиал. Просто хочу понять как это написать самому.