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
.128013kg: r)S/N(q.lo4y,6b=ac1+5xud3t28_Pw7evp-fh09mnis050C0L0E0v0V0n0W0e0w0n0v0W0W0u010E0V0N010406050W0B0T0T0v0f0q040h0o0n0B0;0o0U050i0{0}0 110_0N04051h1a1k0i1h0_0C0V0M0)0+0-0/0+0U0c0B0v0c0L0O0N0q0E0Q180e0Q0V0c0Q0n1M0Q0E0@050!0t0n0L1t0,0.011L1N1P1N0E1V1X1T0E0f1i1H0)140W0N0v0U0/0F011Z1v010P0$0L0U0v0T0L1T1^1`1 1#221X25270@0a0e0I0f0o0N0o0W0V170U0e0Y1?0f0f0L0w2s1a2a0U1i0i1H2F1/1;1:1U0C2c1w0V0U242p1T1q1s0*1!2P2R0U0o2V1T0N2y1i2D2F2,0`1_2t2X202#0f0~0n1T0v1K2y0P0/030H0H0w2$0L1P2!0o0O0D0O0x0@0e0x1a0v2-2:0^2/2b2=1#2@2_2{2}0L2 01313335372S3a0O1}040e0F3h3j1`3l2D2O013q0v2`1i2|0Q2~3032340Y3A2#3C0D3e0D3I2C3k0_3M3o0/3P3R053T3V3w3X3z2Q3B3b0p3e0p3*1b3,3m2;1u3p0o2^3Q3s3U3u3W3y3Z3|3#3b0z3e0z422,3-2:3N3;4c3^3x3Y364i393b0s3e0s4o443.473:493r3S3t3v4w3{383C0K3e0K4F3K4q3n4I3O4K4b4M4d4O3`4h4R3b0G3e0G4W2E4Y462Y4#4a3=3@4e3_4g4y4-0O0S3e0S4=3L4r3/4`4L3?4N4f4x3!4A3c0R0@0x0R574@4s4$4|5e4 5g4z3C0x3d045y5o455q4{4u4~4P4,3}3c3E0x3H0i3i3+4X5D5a4t4(4v4+515K0x3%5A3)5P3J4?5T4!5V5d4)5f4Q5!3 5A415)5R5+4H4_5.4}4*505h5x4l5A4n5`435S5}2?5r5G615v520x4C5A4E682.1n2*1a2V2I0C1;2N5a4x2U1r1i2)0L2+3k5{1i4x6D2b0V0C0/322D5x3s6K6M625w3b3d0e2g0L6S6g5!1T5`6b1#0b0@3o6F0e5,5~0w0@0j0o0L0B0C6F6:200?040d6F0_692E5D6R016N2:3C3E5d775Y633b1}6X266Z786T527c5)0e7r6/6)0/6+040Y0P6.6}2d0T0@322Q2r326|7u016 0k7J594!0t6 0W367z746I4^6~0@0r7A7K0U0@0Z0V0l0B0Z0E0L7O4Z4_6 7#7W7t7P5~0@0c0v0B0w0Q7:7W7B0/7@7$7{2?0@0C2m2r7;7Y1#6 0g717W732.3M7e0H6O3b5$7d6L7m6#4j3a1~6Y6!5=8y8t7q7s8H85017R0@7T0n7V8n891#0o0@0m8f4s0@0M887=208T040u8!8g3:7)0;7,7.834p8W8p8r0O5@8u8C5J8y3 7j278|5Z8~6%3i8H8I7K8L048N8P6E7K8%8V847%7}7 818;3k7`8#8S0@8)7_8J7(047~8082728?8v791`3C658{8w8D5i4l907l7f6U0O9H8G979p8+8K7S7U8W5a9g9!5-8b8d0E8*3N8%9t2,9V8X7x9*9B9i4r8@7a4B6Q9D7n5K4C9N927g0O6j3I8m9e9`9 8^4T4M8p8x5i4Ta39J8}ai953l9_6Jac9|0O4/af9 ah3C4/ak9P52av3*7K7w7y9,5U0P0@0!0$1X9%7?0@7Naq9W9w0vaQ7Z048j9^8Qar6S8^54awa49Q54aBa08ya+3I988R7v0@0V9d3K9;5U0@aX9u9f0Ja{0WaJ4!0b6=046@2RaY8h0@8k8=aU0e9{9F6V5ka,al935i5m8A7ka-6hbpa@9Ua b90@2y0E0B0f19b3a_010T0V0@5n8l9Ca)at5y9~bx5!6W8Bbra5bV2F967s8J7wbFbHbJ9:8JbN5lb84_8%0yb@8a04aN0naPbk5a7Mbf8,04b2a%9W9$c19(9x9l9AcbaRa!b{9r04b`bK9qc5b~c0c83Nc3cgb|c7aaco01cacsb09?0o8ecvbgcibRbkbm0U5x7c2|ag9KcObv91b#9Q5Naoa93K76asbn3c8tcQaxcS6V3%a:ayc.aob+8b3ucj3:aL040Q7 7/bHc47LaSd2aWd28ibi44cLc%cN6V8`c+bX8y0x8 b!aC5?aoa^cz7wa|c`3Ob1dt0ob5040Vb7cn9Wba6?189nc#7K6 d95SdbbTc(0x9HdgcW6h9Mdla;bt9Sb)9Uc@04b-bIdw0@0Od2b=5Aa$cy2tcM5xa7dSdmdia2dWc;3ca79TbC4_b,0Zb.dtd.3gdC9-0@cmb:7%0t0@0~0Ad7d4cHc5c~166_0fek04aTcCcccxdIbLcBd;9=9y9mes0g7^eebL9weod0eremd3etd5dveOeAeycz9w8ccF9+eO8i0gd:c#0i6H1l6p0i6r1a0E6te:2L2G0v1W6C6q6z730Yb~0W04.
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)