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

Обход дерева Хаффмана - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Что означает using namespace std? http://www.cyberforum.ru/cpp-beginners/thread767219.html
Что означает в с++? using namespace std объясните пожалуйста простым языком))
C++ Составить программу, которая считывает текст из файла и определяет Составить программу, которая считывает текст из файла и определяет, сколько раз введенное с клавиатуры слово встретилось в файле, результат записывает в другой файл. Помогите пожалуйста http://www.cyberforum.ru/cpp-beginners/thread767186.html
Указатели и массивы C++
Привет всем. Объясните пожалуйста int* v; int**v; Чем они эквивалентны?
C++ Статический и динамический стек
Необходимо разработать программу, реализующую алгоритм стека (10 элементов). Решение необходимо представить в двух вариантах: статическом (на основе массива структур) и динамическом. В качестве элемента стека выбрать структуру жд_вокзал: i. Номер (ключ) ii. Станция отправления iii. Станция назначения iv. Дата/время отправления v. Дата/время прибытия Предусмотреть многоуровневое меню:...
C++ присвоения константе http://www.cyberforum.ru/cpp-beginners/thread767116.html
Допустим у нас есть класс: class Class{ public: Class(int = 5); private: const int n; }; Class::Class(int _n) {
C++ Целое значение близкое к 7 000 000 000 Здраствуйте, нашел так называемый проект ейлер с задачами для ищущих=) В общем задача найти самый большой простой делитель числа. Алгоритм работает на малых числах но когда ввожу 600851475143 , число которое мне в общем то и нужно посчитать программа работает неверно. Подскажите пожалуйста как правильно ввести это значение. Пробовал и unsigned int и прочее. :cry: #include <iostream>... подробнее

Показать сообщение отдельно
scofielcl
4 / 4 / 0
Регистрация: 11.09.2011
Сообщений: 145

Обход дерева Хаффмана - C++

20.01.2013, 18:29. Просмотров 1019. Ответов 2
Метки (Все метки)

Добрый вечер.

Имеем кодовое дерево Хаффмана.(в изображении)

До каждого узла данного дерева есть путь из 0 и 1 .
Для узла 12 , это 100 ;
Вопрос следующий как , рекурсивно обойти , и вернуть данную последовательность.

C++
1
2
3
4
5
6
7
8
9
10
11
12
 string otvet(list *p,double a){
      
     if(p){
         if(p->inf.id == a)return s;
         s+="1";
     otvet(p->right,a);
     s+="0";
     otvet(p->left,a);
      }  
   
        }
Но это конечно же неверный код.
Изображения
 
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru