Test d'arbre binaire de recherche
La notion d'arbre binaire de recherche ne concerne que les arbres binaires dont les étiquettes sont comparables, par exemple toutes numériques, ou toutes des chaines de caractères.
Définition avec doublons à droite
Un arbre binaire de recherche est tel que, pour tout nœud, on a
- son étiquette est strictement supérieure à toute valeur du sous-arbre à gauche,
- son étiquette est inférieure ou égale à toute valeur du sous-arbre à droite.
Exemple d'ABR
graph TB
A("8")
B("3")
C("15")
D("2")
E((" "))
F("12")
G("23")
H((" "))
I((" "))
J((" "))
K((" "))
L((" "))
M((" "))
A --> B
A --> C
B --> D
B --> E
C --> F
C --> G
D --> H
D --> I
F --> J
F --> K
G --> L
G --> M
Contre-exemple
graph TB
A("8")
B("3")
C("15")
D("2")
E((" "))
F("8")
G("23")
H((" "))
I((" "))
J((" "))
K((" "))
L((" "))
M((" "))
A --> B
A --> C
B --> D
B --> E
C --> F
C --> G
D --> H
D --> I
F --> J
F --> K
G --> L
G --> M
Propriété récursive
Un arbre binaire de recherche est tel que
- ou bien c'est un arbre binaire vide,
- ou bien les trois points sont vérifiés.
- Sa racine porte une étiquette strictement supérieure à toute valeur du sous-arbre à gauche.
- Sa racine porte une étiquette inférieure ou égale à toute valeur du sous-arbre à droite.
- Les deux sous-arbres sont eux-même des arbres binaires de recherche.
Exercice
Coder une fonction est_ABR qui prend en paramètre ab un arbre binaire représenté à l'aide de la classe Noeud et qui renvoie un booléen :
Truesiabest un Arbre Binaire de Recherche (ABR),Falsesinon.
ab est défini comme dans la section précédente, à l'aide de la classe Noeud. Il n'y a pas de classe ABR dans cet exercice.
On garantit que les étiquettes sont dans l'intervalle \([-10^9\;;\;+10^9[\).
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
.128013x/.Tr;nbOylae«u)*dV63Am(P+02è-,59fq»7B8 N_o=pcwgv4F1kRéhtsSji:050s0n0)0m0-0l0*0O0U0l0m0*0*0S010)0-0T010406050*0p0x0x0m0f0k040+0R0l0p120R0h0O020m0x0T0g0O0$0n1c0f0J0p0n0*050c191b1d1f170T04051K1D1N0c1K170s0-0X0`0|0~100(0-0W0(0l1#0(0)15050=0i0l0n1W0}0 011!1$1(1$0)1.1:1,0)0f1L0)0(1=1Y010I0@0n0h1q0n010`1i0*0T0m0h100C1,2i2k261@291:2c0x2e040a0O0z0f0R0T0R0*0-1l1n0:2g0f0f0n0U2I1D2p0h1L0c242U2123221-0s2r101(0h2b2F1,1T1V0{1?2(0-2*0h0R2.1,0T2N1L2S2U2 182j1n2:272^0f1c0l150O0!2R3316322q351@37393b0C3e2k3g2S2%013l0m3a040O0v3p2T173s3j103v3x0O0Y3B3r333t3H3b0G3L3D3N3F3u0R383w3b0u3S3h341X3k3X3m3y0L3$3E3)3G3+3Z3y0N3/3U3;3W3Y3I0H3`3i3|3P040!0B413(2;3}3,0!3d1E3f3T424a440!3o4f3q4h49363?3x0!3A4n3C3%3O4s150!3K4w3M4i4r3~4B3R4E1O2}1D2.2X0s232$3V0U2_2x0/1U1L2|0n2~3f3L054V0:4%4G1@0#150:0I4)3:4a0V3b4@3{4j0I151B0)0Q0w0M0$4|4.1014040y574q3k150m0i5d3t5a0q0.3S0O5p0O4y3V0*2n04011v0h0X0R0-1;0e0f1A0O2G0O5h0O510O0p1n540$0F0O0Z3w0*1;2G2^0h0d013S065q5r4^274:044=5j3V4`3y5:434 04510Q0X3w0-0:5@4a5a5c4L5+5f045h61275a0F3L5*4}36150x2?0-6a1@6c6e5s436i0m0b6l656g6n155m483t5=5)5)6m100*0s15016L0t0%0f0-295X0-0O6j0h6T020l0)0g0S5J0i0Q2b6)0h120n0f1o6Z1t1c6u6B5t6J3y6E5p0;5H6T5K5M5O6%6/5}1(604E4p3t6I3b6|0O6L5$795(7e6q4a5-2N0)0p0f0h6p663G5g5i4E6f58010R5=0-1C7y7l5,0U150P1m0n7t6x107C153X7O7A635o7e7Y7H6y5b6G3u6i6k7U5e7Q156Y6!0S7+3O7w7%0R150d7%0h15760n7q7=3V7_047/0g826r046?6v317u015l7X7Y5p7!7Q5=2k0s884j500*52765 7N6w7V15648d7P7(687x8B7A847{8x7,8D0W0m0p0U0(8w8G8L6o7G8e7}8a7*8K5k156d8W8C8Y698#837`7|7~3w800f7%8g798i5q8k7B8m0h8o8)7A8Y5{8u788T8$7$8-898,988.048J9e890s2C2H8S4(8e8V2 7z8L8+8F9o8C8I8:047 819b628%8p6h8a6t8c9w8y040q8h6E8}8_2 067j8j8e7n0;7q7s929t8r8t5~979L8U8z9z9d9,998(9r8}840E7%6j4B479D27840r0r9{0-15409 7#9?3f9s3t9|459~9i4aa1a3a810aea7ah6b6z3$0c4+4$4Mav0c4P1D0)4RaA2!2V5h1:2U4P1J4-8L2N0x0Q0I0m0#0n0Q0(0v151v1x1z1B0O5n4L1Q3g2.3t0m0s0x1m2H0-1m0O2?0I841Ja,a.a:2I0E120)1 040t6.2Ga?0m0X2O0O0i3X2*0_a^6k1B1O3g1K0+6T0l000w0$0M5L8s0O0h1a6O0-a!5S1c7E0O1z00a?2*2g0h2c2H0O2j0_1:0_bd7ra#6k128=0*5Sa?0T800)5N121(5W6/4*4W04a^1Dau3y0s0p6U2_0p1:5rb?1c24b=b/bF0p6T721n0I0l0R1}2kb(2N2|0%5W6,cd0Obpbh6W8J1R4Y2/3|1_1%1)1+aL3t2t2b2d152z0+0U6P0Tb(0z0k241m4)4#aL304(b?8}5-5/al016D7|5_5{5Q8^9.cX9uc(9N9G1@9_020W6!c.3G0i15bd1ic,a%9T6F8e5u6K5y5A5C0O5E5G5I71bv735Q5S5U0^6S5Z5#9PcU8Y0-1r3X0)7%cZc*8Yc00(5%d08CcV0n4?cXdtap3kc#8s5|9*9n3q9Rc)dG7v8Ec,aa3qac3Vdv8!dQ8f9F9$7?9I6@cX9Sab9^150Ec;c?d%dXc_04c{0lc}6^3|6D7kcX7c5w6Mbz6R6 6U6k6:6!6%6+6+6-6/866$8bd}4ae27Y6~da0ibub(735h75dL7gdy7k9X157o9!c@8D9:dV9^7D7F9@9X7J047L2*eE7R047Td?3|7W8`8{9Q9pdP9;dX7)6WeR7.6;eEc+cX9yc*8;1:9CeL9xe,7:e.6sd*d!d,4oeZdW3|eS8ne}5`dJ96dM2TdO9ad!e/d!e;fg158N8P8RdTf86V9KdNe#04dU2Tf48qdSe:8/e=9A8=e^e%eWareY8{eI5g90f895dLc,8AfHfzeGfd8efjfU9H9k5B0)fccy3V9qd-8X7@fB9g9z9B8@d+d$e_93e~fsfX8Cf13C7Zfu9O7idz7A9Y7p7rfPfafRf^fff!67fWf*fIfve+049`fDdw7^fCfkb:0hdDf0f_f-e`040A9zgqf:9hggdRb;geg49Tc24,awaI4Z17aygRcra|a/6W2Ia@gva`1MgWa~a=0hb02Hb3b50fb71n0(3X0_bx0xbza!bkaKbnclbq55erbK8s2H0p0%0O2K8Q0?bfh91;0U1d0m2P0D2N0_0y0Rb_0s008O21a#0R0i0,0;0_4V1rhh1/a#2bht5L0p0b0q5S6~bGbI1;1T2i2F1;bPhebSbea#051w68bO6P3X6vh!b!1nb$1kb)0@7E6.b~b/eP8wb?bOho6/2?1Ta!6/0.0O0o5H2kbQdo9m0O0K0d0O0j1n0m5Jcag:clhf4WbO1jhz0R1r1:0b5Xc55}6,a$g}gV3Vcu1{1*2o8CcA2v2xcEcG13cJcLg?9#31cP3%cRdNcTeA5.dCds4{c*dI52c%gefTft8*f/gxgleVfzfrgr047;cX0#eNh^fpi;9Hejf:i_d!i{7K7Mc,gLgz8Hd/d;87i 3kd^d`d|798}d 8je16`exjkd16`5)d45B5D5F6S6%h3dd55df5Vdi1mgG4o8}em5q6N6Pe65Ifrea1t5hedhF5Ceg6;ei9J5Lb(euek27jL6|h^6 0W6WjPi6cli8f(j)1@j+7f6LdliXeCgajfdRgifya0eJeEj5eOj7k28~7Sf@f`9-gff2eZfe0yi+f~f{8Ze*kceS7Ek8i|kbi/j9eHfY5=eUkg99kngji=dZja8L8486f8gid.f;fDf?j8kzg1ez9x8 91kEf+8zkG8}dv9JeRk7kck9i}gKk,keeEeXgtkPfYgsgH8DkTkse{6#fqk+gKkV16g2kYfNk!kKd(c$55fS9/9vi,jbkRgtfm8Qf)fefw5?f.kqf}kHaqi:k#9clikokLk|lj9%fEe@kfk}g03y9Ve!l968fOkc94dJi)i/k(ltk`gAjIlCd(f$9mi~lzfVlBlwc/lEl$e(lH8?l*lcl=j1kyj~f fJgMatb/gP4OgUgT0X3gay0;0?0^04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)