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

реализация алгоритма Хаффмана - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ FATAL ERROR LNK1120: 1 unresolved externals SOS! http://www.cyberforum.ru/cpp-beginners/thread847545.html
#include <stdio.h> #include <conio.h> #include <math.h> int main() { int a, factorial(int i); int x=0; int i,b,k=0; printf ("Vvedite chislo \n"); scanf_s ("%f", &x);
C++ Не записывается значение в char Я реализую алгоритм шифрования BlowFish, алгоритм сам по себе не очень сложный, но при попытке шифровать текст у меня возникает ошибка... Дело в том, что в ячейку char(в неё записываются зашифрованные данные) записывается одно значение(к примеру 032), но при дешифрировании программа получает из неё уже совершенно другое значение(к примеру 4294967171). Я не понимаю 2 вещи: как из 1 байта можно... http://www.cyberforum.ru/cpp-beginners/thread847538.html
Сделать ввод и вывод матрицы.Числа рандомно . Потом транспонировать ее C++
Сделать ввод и вывод матрицы.Числа рандомно . Потом транспонировать ее.
Ошибки в MSVC C++
Пишу курсовой в котором используются некоторые функции windows.h для работы с консолью. Недавно совершенно рабочий ранее код начал выдавать тучу ошибок: C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\windef.h(343): warning C4091: 'typedef ' : ignored on left of 'tagPOINT' when no variable is declared 1>C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\windef.h(343): error C2143:...
C++ Как правильно записать результаты в файл?! http://www.cyberforum.ru/cpp-beginners/thread847528.html
Добрый день! У меня возникла проблема - мне необходимо записать в файл результаты некой игры. В файл пишется три непонятных символа. только три иероглифа. Не могу никак исправить. Помогите пожалуйста...!!!! void table(string n1,string n2,string n3, int mass, int n,string nh1,string nh2,string nh3) { game final; game fin_sort; FILE *out; out=fopen("recording.dat","w"); int tmp,i;
C++ использование функций шаблонов:для работы с двумерными мыссивами арифмитических типов данных разработать шаблоны ввода и вывода массива,а также шаблон для решения этой задачи :подсчитать среднее арифметическое ненулевых элементов расположенных над побочной диагональю подробнее

Показать сообщение отдельно
Levenyatko
2 / 2 / 0
Регистрация: 05.07.2012
Сообщений: 99

реализация алгоритма Хаффмана - C++

24.04.2013, 20:05. Просмотров 463. Ответов 0
Метки (Все метки)

вот уже с месяц пытаюсь сделать рабочую программу, кодирующую по Хаффману..и все никак.. есть код

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#include <iostream>
#include <vector>
#include <map>
#include <list>
#include <fstream>
using namespace std;
 
class Node
{
    public:
     int a;
     char c;
     Node *left, *right;
     
     Node(){left=right=NULL;}
 
     Node(Node *L, Node *R) 
     {  left =  L;
        right = R;
        a = L->a + R->a;  }
};
 
 
struct MyCompare
{
    bool operator()(const Node* l, const Node* r) const { return l->a < r->a; }
};
 
 
vector<bool> code;                
map<char,vector<bool> > table;    
 
map<char, int> one;
 
void BuildTable(Node *root)
{   
    if (root->left!=NULL) 
                      { code.push_back(0);
                      BuildTable(root->left);}
     
    if (root->right!=NULL)
                       { code.push_back(1);
                       BuildTable(root->right);}
   
    if (root->c) table[root->c]=code;     
    
    code.pop_back();
}
 
 
int main (int argc, char *argv[])
{
    setlocale(LC_ALL,"rus");
////// считаем частоты символов 
    
    ifstream f("1.txt");
    
    map<char,int> m;
 
    while (!f.eof())
    { char c = f.get(); 
       m[c]++;}
    
  
////// записываем начальные узлы в список list
    
   list<Node*> t;
   for( map<char,int>::iterator itr=m.begin(); itr!=m.end(); ++itr)
   {  
      Node *p = new Node;
      p->c = itr->first; //cout<<p->c<<"  ";
      p->a = itr->second;//cout<<p->a<<endl;  
      t.push_back(p);      }    
    
 
//////  создаем дерево      
 
  while (t.size()!=1)
  {  
     t.sort(MyCompare());
 
      
   
     Node *SonL = t.front();
     t.pop_front();
     Node *SonR = t.front(); 
     t.pop_front();
     
     Node *parent = new Node(SonL,SonR); 
     t.push_back(parent);
 
  }
    
    Node *root = t.front();   //root - указатель на вершину дерева
 
////// создаем пары 'символ-код':           
 
    BuildTable(root);   
        
////// Выводим коды в файл output.txt
 
    f.clear(); f.seekg(0); // перемещаем указатель снова в начало файла
    
    ofstream g("output.txt");
        
    int count=0; char buf=0;
    while (!f.eof())
    { char c = f.get();
      vector<bool> x = table[c];
      for(int n=0; n<x.size(); n++)
       {buf = buf | x[n]<<(7-count);   
        count++;   
        if (count==8) { count=0;   g<<buf; buf=0; } 
       }
    }
 
    f.close();
    g.close(); 
    
///// считывание из файла output.txt и преобразование обратно
    
    ifstream F("output.txt");
    
    Node *p = root;
    count=0; char byte; 
    F>>byte;
    while(!F.eof())
    {   
        bool b = byte & (1 << (7-count) ) ; 
        if (b) p=p->right; else p=p->left;
        if (p->left==NULL && p->right==NULL) {cout<<p->c; p=root;}
        count++;
        if (count==8) {count=0; F>>byte;}
    }
    
    F.close();  
    system("pause");
    return 0;
}
подскажите, что не так..по моему сортировка работает неправильно.но как исправить что то не особо понимаю..
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru