Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Uložení struktury binárního stromu

Dobrý den, mám problém a nevím si už rady.

Jedná se o to, že potřebuju uložit strukturu binárního stromu pomocí EBS. (nějak takto https://ibb.co/bRoKD5 - omlouvám se za kvalitu mojí kresby :-) )

Jak vypadá uzel (zjednodušeně):

struct uzel {
  const int hodnota;
  std::unique_ptr<uzel> m_leva = nullptr, m_prava = nullptr;
  uzel(const int& Hodnota) : hodnota(Hodnota) {}
};
Zatím to řeším tak, že mám rekurzivní funkci, která do vektoru přidává jednotlivé bajty (pak se převedou nakonec na jednotlivé bity).

void export_ebs(std::unique_ptr<uzel>& podstrom, std::vector<std::uint8_t>& bajty) {
  if (podstrom == nullptr) bajty.emplace(0);
  export_ebs(podstrom->m_leva, bajty);
  bajty.emplace(1);
  export_ebs(podstrom->m_prava, bajty);
}
Bohužel tenhle způsob vynechá neexistující uzly, které jsou hlouběji jak jedna urověn.
Podmínka je, že musí využívat jen existující uzly, a není možné vytvářet uzly prázdné.

Děkuji za jakýkoli nápad.

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny