Форум программистов, компьютерный форум CyberForum.ru

Код Хаффмана реализованный через построение бинарного дерева - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сосчитать автокорреляционную функцию между кодами, один из которых циклически сдвинут на k символов http://www.cyberforum.ru/cpp-beginners/thread1170936.html
Нужна помощь в реализации программы. Дано: скомпилированный с++ код. Необходимо сосчитать автокорреляционную функцию между ним и этим же кодом, но циклически сдвинутым на k символов. Для расчета использовать не байты, а типы инструкций. Понятно, что есть формула S(k) = ∑▒〖x(m)x(m+k)〗, но мне все равно не понятно, как быть в случае с кодом.
C++ Узнать файловое смещение переменной Как узнать файловое смещение переменной. Пробовал написать следующий код void main() { int a = 5; cout << hex << &a; system("pause"); }Вывело 18ff50. Пробовал при помощи PE Tools преобразовать в файловое смещение не получилось вывело out of range. Ребят если кто знает прошу помочь, очень надо http://www.cyberforum.ru/cpp-beginners/thread1170922.html
Факторизация методом Шнорра-Ленстры C++
Собственно курсач по этому методу. В рунете информации по нему практически нет, но нашёл в какой-то иностранной книге коротенький параграф с описанием алгоритма, перевёл. Вот он: Будем пытаться разделить N. Будем считать, что мы предварительно рассчитали р *…* р всех простых чисел до 1 . множество В ← , K ← 1, e ← . 2. пусть D = −KN if KN ≡ 3 (mod 4), D = −4KN иначе 3. Пусть ƒ_p...
Описать тип TDate — запись с полями целого типа Day (день), Month (месяц) и Year (год) — и функцию LeapYear(D) C++
Описать тип TDate — запись с полями целого типа Day (день), Month (месяц) и Year (год) — и функцию LeapYear(D) логического типа с параметром типа TDate, которая возвращает True, если год в дате D является високосным, и False в противном случае. Вывести значение функции LeapYear для пяти данных дат (предполагается, что все даты являются правильными). Високосным считается год, делящийся на 4, за...
C++ Разбитие массива на некое количество подмассивов одинаковой длинны http://www.cyberforum.ru/cpp-beginners/thread1170914.html
Здравствуйте. Для решения моей основной задачи требуется разбитие массива на некое количество подмассивов одинаковой длинны. Проблема в том, что конечный подмассив может быть заполнен не полностью, а ограничение на заполнение работает некорректно. Заранее спасибо. #include <iostream> #include <ctime> #include <iomanip> using namespace std;
C++ Как назвать переменную именем, введенным пользователем? Недавно начал изучать C++. Скажите пожалуйста, как назвать переменную значением из другой переменной? Вот код простой программы и как сделать чтобы она работала? #include <iostream> using namespace std; int main(){ char group; //Пусть имя состоит из одной буквы "x" cin>>group; int _ ; // " _ " Имя, вводимое пользователем; } подробнее

Показать сообщение отдельно
Tuma
59 / 40 / 18
Регистрация: 28.09.2013
Сообщений: 186
10.05.2014, 19:50     Код Хаффмана реализованный через построение бинарного дерева
При заполнение дерева,если в узле будет храниться только вес,то значение c(вашего символа) нужно принудительно обнулять,иначе в нем будет храниться всякий мусор типа 'H'.И не забудьте при заполнение дерева обнулить значение символа,если его там нет,а то я не нашел где это у вас.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void print (Node* root, unsigned k=0)
{
    if(root!=NULL)
    {
        if (root->c==NULL)
        {
            for(int i = 0; i < k; i++)
                cout<<"  ";
            cout<< root->a << endl;
        } else
        {
            print(root->left,k+3);
            for(unsigned i=0; i<k;i++) 
                cout<<"  ";
            cout<<root->a<<" ("<<root->c<<")"<<endl;
            print(root->right,k+3);
        }
    }
}
 
Текущее время: 03:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru