Я работаю над деревом Хаффмана, и я пытаюсь понять, как пройти дерево, чтобы найти узел, у которого есть характер, который я ищу. Во время поиска в дереве мне нужно сохранить строку пути, который берется к узлу, который я ищу, используя 1 и 0 (0 слева 1 справа). Как я могу это сделать?Поиск пути на дереве Хаффмана
0
A
ответ
1
С тех пор как я написал двигатель huffman, но я дам ему шанс.
Pseudo Code.
Предполагая, что ваш Хаффмана Tree Node выглядит следующим образом
class HuffNode
{
...
char ch;
long huffCode; //initialized to zero initially
HuffNode left,right;
}
Так вот рекурсивная функция (преобразование его в итерационные должно быть легко)
void buildCodes(HuffNode currentNode, long currentCode)
{
currentNode->huffCode = currentCode;
if(currentNode->left != null) buildCodes(currentNode->left, currentCode << 1);
if(currentNode->right != null) buildCodes(currentNode->right, (currentCode << 1) | 1);
}
назвать это таким образом
buildCodes(rootHuffNode,0);
Смежные вопросы
- 1. Получение пути к узлам Хаффмана
- 2. Поиск самого длинного пути в двоичном дереве
- 3. Уникальные идентификаторы узлов в дереве Хаффмана
- 4. Эффективный поиск дерева Хаффмана, в то время как запоминающийся путь
- 5. Поиск файла в дереве каталогов
- 6. Yii2: Поиск файла и получение пути в дереве каталогов
- 7. Поиск в дереве
- 8. Рекурсивно поиск в дереве
- 9. Поиск узла в дереве
- 10. Поиск в иерархическом дереве на neo4j
- 11. Поиск Стоимость на дереве с упорядоченными узлами
- 12. Найти минимальный вес простого пути в дереве
- 13. Какова логика прохождения каждого пути в двоичном дереве на C++?
- 14. поиск общих под деревьев в дереве
- 15. Рекурсивный поиск узла в дереве
- 16. Поиск узла в двоичном дереве
- 17. Поиск в двоичном дереве поиска
- 18. Поиск медианы в дереве AVL
- 19. Поиск файла на пути MATLAB
- 20. Поиск соседних узлов в дереве
- 21. Поиск узла в двоичном дереве
- 22. Поиск в несортированном дереве рекурсивно
- 23. Поиск данных, хранящихся в дереве
- 24. C++ поиск узла в дереве
- 25. Поиск стоимости в двоичном дереве?
- 26. Поиск вызова метода в дереве выражений/дереве выражений для итерации
- 27. Поиск самого глубокого узла в дереве (Lisp)
- 28. Левый и правый указатели узлов в дереве Хаффмана, не указывающие ни на что
- 29. Список всех непересекающихся путей пути в дереве
- 30. Печать пути к листу в дереве AVL