Страница 1 из 1 |
Автор | Сообщение |
---|---|
|
2
Доброй ночи. Перейду сразу к делу - нужно реализовать метод Хаффмана на С++, до того момента, когда символы в строке получают ужатое значение. И вот нужно вывести символы и эти их ужатые значения. Код есть: #include "stdafx.h"
//узел значений class Node Node(){left=right=NULL;} Node(Node *L, Node *R)
//сортировка узлов struct MyCompare
//сжатие vector<bool>code; if (root->right!=NULL)
int main()
//символ и кол-во его вхождений for (int i=0; i<s.length(); i++)
//слепить из символов узлы и сунуть их в list list<Node*> t;
//отсортировать узлы по кол-ву вхождений от наим. while (t.size()!=1) Node *SonL = t.front(); Node *parent = new Node(SonL, SonR); Node *root = t.front();
//сжатие BuildTable (root);
Все работает, но в итоге нам нужен не вывод сжатой строки, как получилось, а, как уже сказал выше, символов и их сжатых значений. Пробовал слепить итератор к vector<bool>code; (это сжатие) ... //сжатие BuildTable (root);
map<char,vector<bool> >::iterator ii; for (ii=table.begin(); ii!=table.end(); ii++) cout << ii-> first << ":" << ii->second << endl;
cout<<endl;
ЧЯДНТ? В вузе нас не учили кодить, так что мучаю сам по Дейтелу, 5е издание (может еще какие книги засоветуете?). Опыта ноль, начинающий кодер, буду очень благодарен за исправления/подсказки/объяснения. Знаю, что в инете тьма реализаций метода Хаффмана, но там совсем непонятная для меня дичь. |
02 дек 2013, 03:38 |
|
<Бехолдэрс> Сервер: Черный Шрам Рейтинг поля боя: 1145 2х2: 1665 3х3: 2143 5х5: 1670 |
1
wtfcoilmiss писал(а): Доброй ночи. Перейду сразу к делу - нужно реализовать метод Хаффмана на С++, до того момента, когда символы в строке получают ужатое значение. И вот нужно вывести символы и эти их ужатые значения. Код есть: ЧЯДНТ? В вузе нас не учили кодить, так что мучаю сам по Дейтелу, 5е издание (может еще какие книги засоветуете?). Опыта ноль, начинающий кодер, буду очень благодарен за исправления/подсказки/объяснения. Знаю, что в инете тьма реализаций метода Хаффмана, но там совсем непонятная для меня дичь.
Мне мой друг-программист советовал пользоваться книгами Архангельского, справочное пособие и программирование в с++ |
02 дек 2013, 06:29 |
|
|
0
Что говорит компилятор то запили |
02 дек 2013, 07:07 |
|
|
1
for(i = m.begin(); i != m.end(); ++i) там где вывод сжатой строки поменяй. если я правильно понял вопрос а то я не спал уже 2 суток. и на будующее учись анализировать код. это задание у меня заняло 5 минут.
#759 |
02 дек 2013, 08:09 |
|
|
0
я так понимаю что ТС-у помогли и тема закрыта? втф, что случилось с пг... |
02 дек 2013, 12:07 |
|
|
0
Архангельского поищу, код фурычит, спасибо большое!) А ведь и правда просто было... |
02 дек 2013, 20:04 |
|
Страница 1 из 1 |