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

не могу найти ошибку в кодировании Хаффмана - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ не разрешённый символ в функции GetForegroundWindow(); http://www.cyberforum.ru/cpp-beginners/thread517126.html
Всем привет! возникла такая проблема: строчка HWND wnd = GetForegroundWindow(); в консольном приложении работает нормально, а вот когда пишу тот же самый код в WindosForm, то возникают ошибки: error LNK2019: ссылка на неразрешенный внешний символ "extern "C" struct HWND__ * __stdcall GetForegroundWindow(void)" (?GetForegroundWindow@@$$J10YGPAUHWND__@@XZ) error LNK2028: ссылка на...
C++ Создание пустого проекта по умолчанию. Здравствуйте! Возможно как то создать пустой (консольный) проект умолчанию?? То есть постоянно не выбирать на 2 шаге Empty project. (см. вложение) Спасибо! Мне не сложно каждый раз настраивать проект, но все же интересно http://www.cyberforum.ru/cpp-beginners/thread517124.html
C++ Как увеличить количество измерений массива?
допустим, я создал двумерный массив размера n*m int *mas; mas = (int*)malloc(n*m*sizeof(int)); вопрос: как можно увеличить меру массива? (например, чтоб двумерный массив стал трехмерным) (некоторые знакомые сказали, что это возможно, но не смогли ответить на вопрос "каким образом?")
C++ Рекурсивный подсчет количества нечетных цифр в числе
Всем привет. Есть работающая программа, которая считает все цифры в числе рекурсивно. А по условию задачи нужно посчитать количество нечетных цифр. бьюсь с утра, не могу сообразить. код ниже: int count_digits(int, int); int main() { int res, n=0, cnt=0;
C++ Переделать одномерный массив под функцию http://www.cyberforum.ru/cpp-beginners/thread517097.html
помогите переделать под функцию, пожалуйста. #include <iostream> #include <conio.h> using namespace std; int _tmain(int argc, _TCHAR* argv) { int proizv; int secondN; int firstN; int Len;
C++ Теория/списки День добрый, форумчане. У меня вопрос по спискам, точнее - по такой составляющей их как head (голова). Она(голова), как мне известно, должна указывать на начало списка. В связи с этим и возникает ряд вопросов. 1. Где мы объявляем голову? Нужно/можно ли объявлять её в структуре списка? struct list//описание структуры списка. { int inf; list *next; подробнее

Показать сообщение отдельно
rozochka90
0 / 0 / 0
Регистрация: 14.09.2011
Сообщений: 20
12.03.2012, 17:53     не могу найти ошибку в кодировании Хаффмана
занимаюсь сжатием Jpeg написала почти все, теперь начинаю проверять на программе JPEGsnoop
с помощью МОЕЙ программы строю дерево хаффмана для значений
Код
int **MASS_DEREVO_Diff_CrCb;
	MASS_DEREVO_Diff_CrCb = new int *[kol_vo_Diff_CrCb];
	for(k_huf=0; k_huf<3; k_huf++)
	{
		MASS_DEREVO_Diff_CrCb[k_huf]= new int[kol_vo_Diff_CrCb];
	}
				
	int znach_kod_Diff_CrCb;			
	kod_Diff_CrCb = 0;
	int f1_Diff_CrCb = 0;
	int dlina_koda_Diff_CrCb = 0;
	l_huf = 0;				
	x_huf=0;
				
	int i_huf_Diff_CrCb;				
	int j_huf_Diff_CrCb;				
	int k_huf_Diff_CrCb;								
				
	if(kolvo_znachenii_Diff_CrCb==1)
	{
		MASS_DEREVO_Diff_CrCb[0][l_huf] = sootv_Diff_CrCb[x_huf].znachen_Diff_CrCb;
		MASS_DEREVO_Diff_CrCb[1][l_huf] = kod_Diff_CrCb;
		MASS_DEREVO_Diff_CrCb[2][l_huf] = 1;						
	}
	else
	{
		for(i_huf_Diff_CrCb=0; i_huf_Diff_CrCb<nomer_yzla_Diff_CrCb; i_huf_Diff_CrCb++)
		{		
			if(uzel_Diff_CrCb[i_huf_Diff_CrCb]->prev_0_Diff_CrCb==NULL, uzel_Diff_CrCb[i_huf_Diff_CrCb]->prev_1_Diff_CrCb==NULL)
			{			
				for (j_huf_Diff_CrCb=i_huf_Diff_CrCb; j_huf_Diff_CrCb<nomer_yzla_Diff_CrCb; j_huf_Diff_CrCb++)
				{
					for (k_huf_Diff_CrCb=i_huf_Diff_CrCb; k_huf_Diff_CrCb<nomer_yzla_Diff_CrCb; k_huf_Diff_CrCb++)
					{
						if(uzel_Diff_CrCb[j_huf_Diff_CrCb]->next_0_Diff_CrCb!=NULL)
						{
							if(uzel_Diff_CrCb[k_huf_Diff_CrCb] == uzel_Diff_CrCb[j_huf_Diff_CrCb]->next_0_Diff_CrCb)
							{
								znach_kod_Diff_CrCb = 0;
								kod_Diff_CrCb=(kod_Diff_CrCb|(znach_kod_Diff_CrCb<<dlina_koda_Diff_CrCb));								
								f1_Diff_CrCb++;	
								dlina_koda_Diff_CrCb++;
								j_huf_Diff_CrCb=k_huf_Diff_CrCb;
							}
						}
						if(uzel_Diff_CrCb[j_huf_Diff_CrCb]->next_1_Diff_CrCb!=NULL)
						{
							if(uzel_Diff_CrCb[k_huf_Diff_CrCb] == uzel_Diff_CrCb[j_huf_Diff_CrCb]->next_1_Diff_CrCb)
							{
								znach_kod_Diff_CrCb = 1;
								kod_Diff_CrCb=(kod_Diff_CrCb|(znach_kod_Diff_CrCb<<dlina_koda_Diff_CrCb));													
								f1_Diff_CrCb++;
								dlina_koda_Diff_CrCb++;
								j_huf_Diff_CrCb=k_huf_Diff_CrCb;							
							}
						}
					}							
					MASS_DEREVO_Diff_CrCb[0][l_huf] = sootv_Diff_CrCb[x_huf].znachen_Diff_CrCb;
					MASS_DEREVO_Diff_CrCb[1][l_huf] = kod_Diff_CrCb;
					MASS_DEREVO_Diff_CrCb[2][l_huf] = dlina_koda_Diff_CrCb;							
					dlina_koda_Diff_CrCb=0;
					l_huf++;
					x_huf++;
					kod_Diff_CrCb=0;
				}
			}
		}
	}
113-----------------------------------------------------------126
2-----------4---------------------------------8--------13----
2-----3----------------5-------------------------------
1-----
1----2-----------------
1----
1---2-------------4---------------------------
1---
1--2--------------
1--
1-2---------
1-

получается что для
113 код 1
2 код 0000
2 код 0001
1 код 0010
1 код 0011
1 код 0100
1 код 01010
1 код 01011
1 код 01100
1 код 01101
1 код 01110
1 код 01111


а в программе JPEGsnoop получаются коды вместо первых нулей -единицы и код для 113 - 0...что делать? вот тут лежит картинка над которой я работаю...я так полагаю что она не открывается потому что у меня неправильно закодировано дерево и записано в файл jpeg :http://zalil.ru/32862746
пожалуйста, не поленитесь скачать программу JPEGsnoop и может чем-нибудь поможете! большое спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru