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"
(Ctrl+Clic pour inverser les colonnes)
Entrer ou sortir du mode "plein Ă©cran"
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

.1280130ldy1,4]k/eibmc:3aPr+ =9o[fgt2;sSh)(punv050d0l0D0s0m0c0G0w0p0c0s0G0G0x010D0m0L010406050G0M0o0o0s0u0e040H0z0c0M0)0z0N050k0:0=0@0_0.0L040519121c0k190.0d0m0O0X0Z0#0%0I0m0C0I0c1q0I0D0,050S0n0c0l1l0!0$011p1r1t1r0D1z1B1x0D0u1a0D0I0X0|0G0L0s0N0%0E011D1n010B0U0l0N0s0o0l1x1W1Y1%1F1*1B1-1/0,0a0w0t0u0z0L0z0G0m0 0N0w0Q1U0u0u0l0p27121=0N1a0k1S2k1P1R1Q1y0d1@0%1t0N1,241x1i1k0Y1E2u0m2w0N0z2A1x0L2d1a2i2k2O0/1X282C1(2H0u0?0c0,0f2h2S0-2R1?2U1F2W2Y0,0E2$1Y2(2i2t012-0s2Z040r2;2j0.2@2+0%2`2|0h2 2k2L0l2k2A2n0d1R2s33010p2I1:1a3d1b2M2)2j38053k0Q2N2S2^0j0,0Q0B380w3r2^0N0B0,0S0U1B3t321m1F0+040K3O3y3i0N0,0@0n2d3V2*3Q0%3S0g3E3G3X0,1B1L3$132%3.3)013S0J0q38060w413F3P2D013A040m3D3@2=433W3`3Y043;1P0l3-441(0z0,0x0x4l4e450G0f0,02030r0y0F4y4A0F3%2T3`3S3~4b30424N4d3(45472d0D0M0u114L044P4H450o0m0,0b3 4N3_4R0,4T4V4X2O4!2^4%2!4s4Q4n0,0v4{4#2V3K0T0c3N4Y4-1(3S3U574m2,3Z0u3#4k5c4t590,3,4Y4@3/043!3?2Q5d3*0,0A4G3H3:0R4j5z3i3S0i5y5j4|1F4_044*5J513R0,0i0J502^4o044 5o585e043L555i5u5k5R3T5E4f5f5h5/453+5V5q5s5*3^5v3{5x5?524h5C5t5}5,5w045H615L4(042#5P2^5G5U4Y0.0k3v3b1d3q0k3o2l3f122o6v0s1A6o6r1j2(6r0R540G04.