taille récursive d'un arbre binaire (1)

Dans cet exercice, un arbre binaire de caractĂšres est stockĂ© sous la forme d’un dictionnaire oĂč les clefs sont les caractĂšres des nƓuds de l’arbre et les valeurs, pour chaque clef, la liste des caractĂšres des fils gauche et droit du nƓud.

On utilise la valeur '' pour représenter un fils vide.

Par exemple, l’arbre

image

est stocké dans

🐍 Script Python
a = {'F':['B','G'], 'B':['A','D'], 'A':['',''], 'D':['C','E'], \
'C':['',''], 'E':['',''], 'G':['','I'], 'I':['','H'], \
'H':['','']}

Écrire une fonction rĂ©cursive taille prenant en paramĂštres un arbre binaire arbre non vide reprĂ©sentĂ© par un dictionnaire comme vu ci-dessus et un caractĂšre lettre. La fonction doit renvoyer la taille de l'arbre, ou du sous arbre de arbre de sommet lettre.

On observe que, par exemple, arbre[lettre][0], respectivement arbre[lettre][1], permet d’atteindre la clĂ© du sous-arbre gauche, respectivement droit, de l’arbre arbre de sommet lettre.

Exemple

🐍 Console Python
>>> taille(a, 'F')
9
>>> taille(a, 'B')
5
>>> taille(a, 'I')
2
Compléter le code ci-dessous

###(Dés-)Active le code aprÚs la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activĂ©, le texte copiĂ© dans le terminal est joint sur une seule ligne avant d'ĂȘtre copiĂ© dans le presse-papier
Évaluations restantes : 5/5

.128013f:0Sd=4yr/opg2mcb1w93ve[ l,+P)ti]kn;ua(sh050f0x0F0M0G0A0O0z0q0A0M0O0O0g010F0G0m010406050O0L0p0p0M0j0i040e0l0A0L0*0l0J050k0;0?0^0`0/0m04051a131d0k1a0/0f0G0w0Y0!0$0(0P0G0n0P0A1r0P0F0-050T0r0A0x1m0#0%011q1s1u1s0F1A1C1y0F0j1b0F0P0Y0}0O0m0M0J0(0o011E1o010b0V0x0J0M0p0x1y1X1Z1(1G1+1C1.1:0-0a0z0D0j0l0m0l0O0G100J0z0R1V0j0j0x0q28131?0J1b0k1T2l1Q1S1R1z0f1^0(1u0J1-251y1j1l0Z1F2v0G2x0J0l2B1y0m2e1b2j2l2P0:1Y292D1)2I0j0@0A0-0s2i2T0.2S1@2V1G2X2Z0-0o2%1Z2)2j2u012.0M2!040v2=2k0/2^2,0(2{2}0h302l2M0x2l2B2o0f1S2t34010q2J1;1b3e1c2N2*2k39053l0R2O2T2_0I0-0R0b3u331n1G0t0-0z3F3z3j0J0b0-0T0V1C3M2+3H0(0,040N3V2U3X2`0-0^0r2e3$2_3Z0B393L3G2E3)041C1M3-142(3s3/0-0E0c39060z473?3N3(3B040G3E3~2?493W3^0J0-3{1Q0x3=403j0l0-0g0g4q3@1)0O0s0-02030v0u0K4D4F0K3.3j3Z444g31484R4i3%3^4c2e0F0L0j124P044T2_0p0G0-0d454R4r4b0-4X4Z4#2P4(3j4*2#4x4a3^4t040C4~4j2W3R0U0A3U4$4:3^3Z3#5b4y2-3*0j3,4p5g4 1)3:544U56043+3}2R5h3Y0-0y4L3(4l3`0S4o5C5d0-0H5B5n551G4|044-5N5s1G3Z0H0E5r2_51534$4`5D573T5m5x5o5V0-5f5-5O355j5l5I5p0-3;5%5c5t5v5,3 5y013Z5M5=5U5@5F3|622?5 5/045L5`5P4+042$5T416h5Y4$0/0k3w3c1e3r0k3p2m3g132p6D0M1B6w6z1k2)6z0S580O04.