Sérialiser à la main, et compter les jetons
Exercice · niveau 2 · informatique (MP2I/MPI), chapitre 12 — Tableaux associatifs, hachage et sérialisation
Énoncé
Soit l'arbre de racine , dont le fils gauche est — lui-même de fils gauche et sans fils droit — et dont le fils droit est , une feuille.
- Donner sa sérialisation préfixe avec vides marqués.
- Combien de jetons pour un arbre à nœuds ? Le démontrer.
- Le mot
#est-il indispensable dans les deux positions ?
Corrigé
1. On applique la définition : un nœud donne son étiquette, puis son fils gauche, puis son fils droit ; un sous-arbre vide donne #.
5 3 1 # # # 8 # #
Détail de la lecture : 5, puis le sous-arbre gauche 3 1 # # # — c'est-à-dire , son fils gauche 1 # #, et son fils droit # —, puis le sous-arbre droit 8 # #. Mesuré par aller-retour : la désérialisation de cette chaîne redonne l'arbre de départ.
2. Un arbre à nœuds a exactement jetons : étiquettes et marqueurs #. Ici : , et l'on compte bien jetons.
Démonstration, par induction structurelle. Pour : et un seul jeton, . Pour de tailles et : par hypothèse d'induction les deux sous-arbres donnent et jetons, auxquels s'ajoute l'étiquette, soit
Vérifié par programme sur arbres tirés au hasard.
Une autre lecture du même comptage : un arbre binaire à nœuds a exactement « places vides » — c'est le nombre de sous-arbres vides —, résultat déjà vrai au chapitre chap:arbres et qu'on retrouve ici comme un sous-produit du format.
3. Oui, les deux sont indispensables, et pour deux raisons différentes.
- Le
#du fils droit de distingue « est le fils gauche de » de « est son fils droit ». Mesuré : sans marqueurs, l'arbre avec à gauche et l'arbre avec à droite donnent tous deux la même écriture8 3. Avec marqueurs :8 3 # # #contre8 # 3 # #. - Les
#des feuilles marquent la fin de la descente ; sans eux, rien ne dirait quand un sous-arbre se termine, et la lecture ne pourrait pas savoir à qui rattacher le jeton suivant.
Le # n'est pas un remplissage : c'est le seul endroit du format où la forme de l'arbre est écrite. Les étiquettes, elles, ne portent que le contenu.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.