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

Как разобраться? Кодирование по Хаффману( - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Пакетное переименование файлов http://www.cyberforum.ru/cpp-beginners/thread1066935.html
Добрый день, можно с помощью с++ написать прогу которая будет переименовывать файлы указанные в папке формата Чистота_Имя-Фамилия_время.mp3 в вид Чистота_время.mp3 ?
C++ Вычисление функции прекратить, если достигнута заданная точность e, либо взято в разложении ряда m членов подскажите пожалуйста как примерно хотя бы составляется данное уравнение программно условие Ввести e, m и x. Вычислить значение функции: вычисление функции прекратить, если достигнута заданная точность e, либо взято в разложении ряда m членов. Подскажите кто как это решить. http://www.cyberforum.ru/cpp-beginners/thread1066914.html
std::vector пустой C++
Всем привет. Собственно проблема: a.push_back(56); Как бы я не добавлял елементы в вектор он все ровно пустой. Раньше такого небыло. Как это исправить?
Считывание строки C++
В общем появилась у меня недавно необходимость чужой код из консоли перевести в форму. Все функции подключил к контролам но 1 строку кода перевести не могу. Программа считывала данные из файла таким образом fread(N, sh, 1, f_begin); N - char sh - int f_begin - FILE Мне нужно сделать чтобы считывание шло с textEdit. Данные из textEdit я записал в строку char *tm =...
C++ использование функции atof http://www.cyberforum.ru/cpp-beginners/thread1066905.html
требуется в качестве параметра на atof подавать не char* а string переменную(из библиотеки <string>) как это делается скажите пожалуйста?
C++ Получить все возможные варианты комплектов из 60 книг, если посылки комплектуются по 10, 15 и 20 книг (поиск ошибки) #include<iostream> using namespace std; int main() { int i=0, j=0, k=0, m=0; do { do { подробнее

Показать сообщение отдельно
propels
Сообщений: n/a
09.01.2014, 20:51     Как разобраться? Кодирование по Хаффману(
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
void    getmin2(int n, int *i1, int *i2) //нахождение двух минимальных частот
//в неиспользованных узлах метода Хаффмана
{
 int    i, min1, min2;
 
 *i1=*i2=-1;
 for (i=0,min1=min2=1000000;i<n;i++) 
  if (!uses[i]) //данный узел еще не использовался
   if (frs[i]<=min1) { //частота узла меньше или равна первого минимума
    *i2=*i1;    //текущий первый минимум делаем вторым
    min2=min1;
    *i1=i;      //запоминаем индекс и значение нового первого минимума
    min1=frs[i];
   }
   else
    if (frs[i]<min2) { //найден новый второй минимум 
     *i2=i;     //запоминаем индекс и значение нового второго минимума
     min2=frs[i];
    }
}
 
void    getbinarycode(char *dstptr, int l, int c) //построение символьного вида кода c длиной l
{
 int f;
 
 dstptr+=l;
 *dstptr--=0;
 for (f=1;l;f<<=1,l--) *dstptr--=(c&f)?'1':'0';
}
 
void    getcode(int i, int l, int c) //рекурсивная процедура формирования кода Хаффмана
{
 int    j;
 
 if ((j=nodes[i][0])<nsymbol) {//левый потомок узла соответствует входному символу
  codes[j]=c<<1; //дописываем 0 к конецу кода
  lens[j]=l+1; //увеличиваем длину кода на 1
 }
 else //продолжаем формирование кода из левого потомка узла j, увеличив длину кода на 1 и дописав к концу кода 0
  getcode(j,l+1,c<<1);
 c=(c<<1)|1; //дописываем 1 к концу кода
 l++; //увеличиваем длину кода на 1
 if ((j=nodes[i][1])<nsymbol) {//правый потомок соответствует входному символу
  codes[j]=c; //записываем код
  lens[j]=l;  //и длину
 }
 else
  getcode(j,l,c); //продолжаем формирование кода из правого потомка узла j
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru