Drzewo binarne i kodowanie Huffmana.

0

Witam. Poszukuję algorytmu który przejdzie po wszystkich liściach drzewa binarnego i przypisze im kod binarny wedle następującej reguły:

  1. Startujemy od korzenia z pustym kodem
  2. Gdy skręcamy w lewo dodajemy do kodu 0, prawo: 1
  3. Gdy napotykamy liść przypisujemy mu kod i wrzucamy parę liść + kod do tablicy

Obrazek poglądowy:
user image

0

Mniej wiecej:

void idzsobie(node *ptr, char kod)
{
   if(ptr != NULL)
   {
       if(ptr->left != NULL)
       {
          idzsobie(ptr->left, kod++);
       }
       if(ptr->right != NULL)
       {
          idzsobie(ptr->right, kod);
       }
   }
}
0

Ten kod powyzszy jest do przechodzenia po takim drzewie, zamiast zwiekszac ten kod, jak pokazalem idac w lewo to sobie napisz w tym miejscu co tam chcesz dokladnie, a lisc to wiadomo, nie ma ani left, ani right, wiec sobie dodaj warunek jakis i po sprawie.

0

Dzieki wielkie, juz sobie poradzilem

1 użytkowników online, w tym zalogowanych: 0, gości: 1