Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Реализация алгоритма Хофмана

15K
22 января 2006 года
opium
1 / / 22.01.2006
попробую сформулировать вопрос:
1.без создания дерева возможно это реализовать.
2.каким образом можно забивать переменную типа инт, до отказа и переходить к следующей.Возможно ли так?
for(;пока не кончится текст;){
взятие буквы из текста;
определение ее кода;//code[j]-это архив в котором храняться коды
// каждого символа в формате
// 0 - наибольшая чвстота ( пусть буква "м"
// 10 - менее встречающаяся буква ( - "и")
// 110 - редкая ( "р")
// тогда "мир" будет выглядеть как 010110
//это 6 бит. Как их запихнуть в переменную...?
for(int i=0;i<32;i++){

ar<<2;
}
}


Зараннее спасибо всем.
12K
24 января 2006 года
b1er
5 / / 19.07.2005
Я знаю как это реализовать без дерева, но незнаю как с деревом. :)
Работающий пример функции присоединения:
 
Код:
int func(unsigned long chto,unsigned long kuda,int skolko)
{
    kuda<<skolko;//сдвиг влево на число бит
    kuda|=сhto&~(0xffffffff<<skolko);//обрезаем chto по маске (для стабильности) и дриделываем к kuda
    return kuda;
}

Но она не проверяет на заполненость переменной.
Понять заполнена ли переменная невозможно (например незаполненая переменная 00001100 - это "ммммрм"), так что нужно выделить переменную для числа заполненых бит.
И вообще используй long (а лучше unsigned long).
12K
24 января 2006 года
b1er
5 / / 19.07.2005
Вот рабочая прога, толь словарь статический, но при желании можно и динамический сваять.(коментов мало :)
Слежение за переполнением реализовано через отдельную переменную.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог