J'ai un arbre binaire représenté par une traversée de pré-commande, qui ressemble à ceci: {1 4 6 10 0 0 0 7 0 8 0 0 2 5 0 0 3 9 0 0 0 }
, où un 0 indique l'absence d'enfant d'un élément.arbre binaire de traversée de précommande avec des enfants absents spécifiés
Comment puis-je construire l'arborescence binaire d'origine à partir de ces données? J'ai essayé de résoudre le problème avec la récursion, mais je n'ai pas réalisé comment traiter les enfants droits des nœuds, car je ne peux pas calculer leur position dans le tableau à moins qu'ils aient une feuille comme parent (le cas deux zéros après, qui indiquent qu'il n'a pas d'enfants).
J'ai l'impression que la solution doit être assez facile, mais je ne la vois toujours pas.
* sauf s'ils ont une feuille comme parent *. Comment la feuille peut-elle être un parent? Ne pensez-vous pas que cela soit contradictoire avec la feuille? – Atri
il ne peut pas être, mais je veux dire le cas où la feuille a deux zéros après, ce qui indique qu'il n'a pas d'enfants. – AWhite
Lorsque leaf a 2 zéros après, alors l'élément suivant sera l'élément de droite de son parent, si l'élément courant n'est pas lui-même l'élément correct et continue à le vérifier récursivement. J'ai mon point? – Atri