Кодирование по Хаффману с использованием форматирования на основе символов

#c

#c

Вопрос:

Я пытаюсь написать простую рекурсивную функцию для возврата закодированных значений. Функция примет входную строку 001a1b01c1 и вернет дерево и закодированные значения. Буквы кодируются как: a = 00, b = 01, c = 10, d = 11. Я использую studio и пытаюсь сохранить его на C. Я не уверен, что я реализую рекурсивный.

 #include "pch.h"
#include <stdio.h>
#include <stdlib.h>

struct HuffmanNode {
    unsigned char value;
    struct leaf *left; 
    struct leaf *right;
};

HuffmanNode *decodeTree(unsigned char tree[], int amp;idx)
{
   if (tree[idx] == '1')
   {
         idx;
       return (HuffmanNode(tree[idx]));
   }

   else
   {
       idx  ;
       HuffmanNode *left = decodeTree(tree, idx);
       idx  ;
       HuffmanNode *right = decodeTree(tree, idx);
       return HuffmanNode(left, right);
   }

}

int main()
{
// huffman tree 001a1b011c
unsigned char HuffmanArray[24] = {'0','0', '1', 'a', '1', 'b', '0', '1', 
'1', 'c' };

int idx = 0;
HuffmanNode *codetree = NULL;

codetree = decodeTree(HuffmanArray, idx);
return(0);
}
  

Комментарии:

1. Это C или C ? Вы включаете iostream.h.

2. Я пишу на C. — Mark

3. Если это C, дважды проверьте это #include . Это очень похоже на C с использованием HuffmanNode(...) конструктора.

4. Я исправил то, что считаю правильным. Мне трудно разобраться в процессе рекурсии.