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.
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
.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.
# Tests
(insensible à la casse)(Ctrl+I)