taille récursive d'un arbre binaire (2)
Un arbre binaire est soit vide, représenté en Python par la valeur None
, soit un nœud,
contenant une étiquette et deux sous-arbres gauche et droit et représenté par une instance
de la classe Noeud
donnée ci-dessous.
Python
class Noeud:
def __init__(self, etiquette, gauche, droit):
self.v = etiquette
self.gauche = gauche
self.droit = droit
L’arbre ci-dessus sera donc implémenté de la manière suivante :
Écrire une fonction récursive taille
prenant en paramètre un arbre a
et qui renvoie la
taille de l’arbre que cette instance implémente.
Écrire de même une fonction récursive hauteur
prenant en paramètre un arbre a
et qui
renvoie la hauteur de l’arbre que cette instance implémente.
On considère que la hauteur d’un arbre vide est -1 et la taille d’un arbre vide est 0.
Exemples
Compléter le code ci-dessous
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
.128013l(9 _4:=vm26-uS8w.s3/+fr7gebhpPicN05qa,onkyd1x)t050S0B0W0M0G0b0t0e0H0b0M0t0t0i010W0G0E010406050t0o0k0k0M0y0R040p0O0b0o0;0O0P050v0{0}0 110_0E04051h1a1k0v1h0_0S0G0j0)0+0-0/0+0P0A0o0M0A0B0n0E0R0W0D180e0D0G0A0D0b1M0D0W0@050!0C0b0B1t0,0.011L1N1P1N0W1V1X1T0W0y1i1H0)140t0E0M0P0/0l011Z1v010x0$0B0P0M0k0B1T1^1`1 1#221X25270@0a0e0F0y0O0E0O0t0G170P0e0Y1?0y0y0B0H2s1a2a0P1i0v1H2F1/1;1:1U0S2c1w0G0P242p1T1q1s0*1!2P2R0P0O2V1T0E2y1i2D2F2,0`1_2t2X202#0y0~0b1T0M1K2y0x0/030f0f0H2$0B1P2!0O0n0u0n0T0@0e0T1a0M2-2:0^2/2b2=1#2@2_2{2}0B2 01313335372S3a0n1}040e0l3h3j1`3l2D2O013q0M2`1i2|0D2~3032340Y3A2#3C0u3e0u3I2C3k0_3M3o0/3P3R053T3V3w3X3z2Q3B3b0g3e0g3*1b3,3m2;1u3p0O2^3Q3s3U3u3W3y3Z3|3#3b0K3e0K422,3-2:3N3;4c3^3x3Y364i393b0m3e0m4o443.473:493r3S3t3v4w3{383C0z3e0z4F3K4q3n4I3O4K4b4M4d4O3`4h4R3b0q3e0q4W2E4Y462Y4#4a3=3@4e3_4g4y4-0n0d3e0d4=3L4r3/4`4L3?4N4f4x3!4A3c0J0@0T0J574@4s4$4|5e4 5g4z3C0T3d045y5o455q4{4u4~4P4,3}3c3E0T3H0v3i3+4X5D5a4t4(4v4+515K0T3%5A3)5P3J4?5T4!5V5d4)5f4Q5!3 5A415)5R5+4H4_5.4}4*505h5x4l5A4n5`435S5}2?5r5G615v520T4C5A4E682.1n2*1a2V2I0S1;2N5a4x2U1r1i2)0B2+3k5{1i4x6D2b0G0S0/322D5x3s6K6M625w3b3d0e2g0B6S6g5!1T5`6b1#0Q0@3o6F5,4_0r3e6.6)3:0H0@0I0O0B0o0S6?594!0?040h6F0_692E5D6R016N2:3C3E5d7b5Y633b1}6X266Z7c6T527g5)0e7v0e6/206+040Y0x704Z6:6=786I4^200x0k0@322Q2r327E7K1#730c7T3N0C730t367D7I7y7V0@0N6F7x6@3O0@0Z0G0L0o0Z0W0B7Y5a737-7I7/715~0@0A0M0o0H0D7|7)7:7 7.7*3:0@0S2m2r7}720@0V757I772.3M7i0f6O3b5$7h6L7q6#4j3a1~6Y6!5=8E8z7u7w8N8g017!0@7$0b7(8t83200O0@0s8m84040j8f7:8Z040i8*8X3p7=0;7^7`8b4p7Y8v8x0n5@8A8I5J8E3 7n27915Z936%3i8N8O7:8R048T8V6E8+8!8$2?8587898_3k827F8Y0@8.818P0P9o888a768{8B7d1`3C65908C8J5i4l957p7j6U0n9K8M9c9t7U0/9f9h9m1#8,8#8c8:8h7B8k0W8/9u9(9w9;9Z7;9.0O8l8r9F6S8}6j9L9S524C9Q977k0na25)8s9j4r8|7e3b4T4M8v8D5i4Ta79M92an9a3l9+6J9G8wah0n4/akaxam3C4/apa45KaB3*7:7A7C9%0/6;3FaP3O0x0@0!0$1XaT7WaT9A040Ma!8o8q8`av2tag9I3b54aCa89T54aH7r5Ka?3I9d9,017A0G9i3K9Y4s0@a)9y8+aR0G0t9^3N0Q6_046{2Ra*749Ea.0ea:0P5x5ka@aq985i5m8G7oa^6hbva 9Xb75a7A2y0W0o0y19bbb10k0G0@5n9~bqbs5x5za3a|8E5ybB96bxa9b(2F9b7w8PbK0ZbNbP2,bI4!bS5lbg5a8,0wb~5-aW0#0baZbq7~0@7Xc8c3a(aT9)a$9B9qbn0Vc24_c0cm9n04aXc69r3K8Pa#cc8%ba8W9=0/cgcycq8j9|9:cF7+04clbWcBa/ax8}5N6QaD9N5x7m8Hb+9TcTb.aucPbrcRaz5#cUbD5!3%a{aE6V8L5QaM8i3uaTaR7xcK3:aV040D877{bNbncbc)5Ub9cka,44bXc+a;3c8 2|alcW6V94cZaIb%8 9Wb`4_b3b52EdvcqcA9s8P0ObdbfbQcCb2bjblcu798d0@de5Sdga0c,9KdlcVar64b)9Rb$bz9Vb/9Xb;0@bLb@cp9?040naTb|5Abpc)bY6Va2dXc/b%a6dqd%5xabd*dA6*d-b?bOd:0/d^3gdI9_coeh4s0C0@0~0Ud8chd3d56}0yeqd09`dCcv9k049*dacd869CdN7J3N730V80b_9z0@d416eueweEczcf9lexa%cH9}eV20eLcNa-6n6H1l6p0v6r1a0W6te=2L2G0M1W6C6q6z770Ycs0t04.
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)