Arbre binaire⚓︎

Remarque

On rappelle qu'il existe parfois des variations dans les définitions des structures arborescentes, et que pendant un exercice, il faut suivre celles données dans l'énoncé.

On peut définir un arbre binaire par :

  • Soit un arbre binaire vide (souvent appelé nil).
  • Soit c'est un nœud qui possède une étiquette et deux sous-arbres binaires, un à gauche, un à droite, possiblement vides l'un et/ou l'autre.

Les arbres binaires sont ici modélisés dans Python avec un style POO (Programmation Orientée Objet), et on vous demande de compléter la classe ArbreBinaire pour disposer des méthodes taille et hauteur.

Remarque

Dans cet exercice, la définition de la hauteur de l'arbre binaire vide est 0.

Exemple
graph TD
    A2{N1} --> A1{N2}
    A2     --> N3{N3}
    A1     --> N1{N4}
    A1     --> N2{N5}
    N3 --> x3( )
    N3 --> y3( )
    N2 --> x2( )
    N2 --> y2( )
    N1 --> x1( )
    N1 --> y1( )

Un arbre binaire de hauteur 3 et de taille 5.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
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
.128013(lbsSet.ph4rdA5xf1890uma"ov+w7g,_/B3=in 6k:)y q2PcN030h0a0b0s0G06080O0S060s08080F0t0b0G0d0t020I03080q0r0r0s0g0N02090u060q0-0u0H030C0@0_0{0}0=0d02031d161g0C1d0=0h0G0v0$0'0)0+0e0G0z0e061u0e0b0:030X07060a1p0(0*0t1t1v1x1v0b1D1F1B0b0g1e0b0e0$10080d0s0H0+0Q0t1H1r0t0l0Z0a0H0s0r0a1B1!1$1*1J1-1F1:1=0:040O0R0g0u0d0u080G130H0O0V1Y0g0g0a0S2a161^0H1e0C1W2n1T1V1U1C0h1`0+1x0H1/271B1m1o0%1I2x0G2z0H0u2D1B0d2g1e2l2n2R0?1#2b2F1+2K0g0`060:0O0m2k2V0;2U1_2X1J2Z2#2%0Q2)1$2+2l2w0t2:0s2$020O0E2@2m0=2`2.0+2}2 0O0f332_2V2{392%0j3d353f372|0u2!2~2%0J3k2,2W1q2/3p2;300y3u363x383z3r300n3D3m3F3o3q3a0o3L2-3N3h020m0p3S3w2G3O3A0m2(172*3l3T3#3V0m2?3)2^3+3!2Y3H2 0m323;343v3g3_0:0m3c3}3e3,3^3P423j453?40493W3t4c3 3n3.3C4i3E3-413W3K4n3M4p4f0m3R4t473y4f0Q3Y451h2P162D2q0h1V2v3n0S2L1?1e4J1f4H2T4F4P0V2Q4u1+0K0:2.3d0O4j3U0S0:0i0g072g0D2I0Y2g3d4+3#0/020L3k0O514*4o4$0:0V0l4)4{1+0l0r0:0B0B2I295f4`541J4}055k4#1J074}080a06584F5l0+4}0A595z2|0:0z0s0q0S0e0a5p4A0+0u0:0F5N3@1J0K4-020T145M5y5q5A0:5C45535%5F020W0G0P0q0W0b5#2T5E5Q025S5$5O0t5W0:5Z2z5T2{5B5D5,0H5624295^2*5a1J5{5}5_5,615Y5!653n4}0M4 4c526v5+5 5s0:5u5w6p3N5{0c6D3-5G5I5K6e2^6x5U5P5R685 6a025H5J5L506w516g0+6z026B5x6k5 6F6H2Y0:5/5;5?6M2m6O2{6i6S6P5-6;5=1P6@0;6!6#5E6'6)6.6h0:6G5~6}6U0h6c5@6|6`6R5*6$5-7g0u6d3k0I6v7n4%02577j4k0l6:080b0B0v0G0V795'025o7d2{775v6*6f5E6r6t2R7t747v0:2g0b0q0g157m765t7Q7J0t6-7N4k6:0-6=717z6E0x0:0G087_3#6m63720I7X756l560a7R6N7n0H7B020e5I5@7%7-5n7-7P6C7:3N7U6Z6!7Z020G8a6^7n8n8x4!6,7b7-6U0a7D7F7H727n5n6s8s74865 7w7#7%7(2R6_3n0r0G0:4E7W8Q8u5v5u8k0:7V3*8Q7u5E8T0W8V7 1+8!428_7a020w8}38070:0`0k8,7L8m7+8o6+6}7/9c3g6J6X8L5`8E8p6I8f8h0a8j9m1+8N5)8X8z9a8B7n9e7S696b7q7i9s8~7c9f7;9o129q0g97050M0M7s8;877x89912|8e0X0Z1F9Q996A7,9H7K8O6u7Y8=7|8B8Y3N8A7-9B2^8c7C7E7G7I9,0t8N8.3=8:528u8U7'9Z8{028%8/9:9W8*9j5,4}a534a78R6}8?7$ab7)5,ad3(9w9k8 9Z9_a29{2m9}6V6K6YaE9l9K3U0:9$069'a28N9Z5{90av6y9y9`aM9C6T9E7raL029Ja%7eaP0YaRak5 aU4i0C4Y0a2n2Oa{4I1n4K2q2t2o0s1Ea~0C4J0=b80Wa:0802.