Recherche dans un ABR
On considère un arbres binaires de recherche qui :
- soit est l’arbre vide identifié par
None; - soit possède une valeur
clé, un sous-arbre gauchesaget un sous-arbre droitsad, tous les trois regroupés dans un triplet(sag, clé, sad).
graph
n1((1)) --- n0((0))
n1 --- n2((2))
n2 --- n4((" "))
n2 --- n3((3))
Ainsi, l’arbre binaire de recherche abr_1 ci-dessus est créé par le code python suivant :
n0 = (None, 0, None)
n3 = (None, 3, None)
n2 = (None, 2, n3)
abr_1 = (n0, 1, n2)
Écrire une fonction récursive recherche_abr qui prend en paramètres un arbre binaire de recherche abr et une cible valeur, et qui renvoie True si l'ABR contient la cible et False sinon.
Exemple
>>> recherche_abr(abr_1, 4)
False
>>> insertion_abr(abr_1, 0)
True
Tests
Les tests de la fonction se dérouleront en deux temps :
- les tests s'assureront d'abord que la fonction renvoie des réponses correctes ;
- sa complexité en temps est ensuite testée, pour vérifier qu'elle respecte les spécifications attendues pour un ABR.
Tests aléatoires et performances
Votre tracé sera ici
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
.128013ua/;(lbw8p)gdo 7ekhmf:vT,P1Ssin9y0_t54NrF32c6=050n0r0K0c0E0g0D0p0S0g0c0D0D0U010K0E0k010406050D0b0u0u0c0O0H040C0o0g0b0/0o0F050d0_0{0}0 0@0k04181f051i0d1i1k1f0@0n0E0x0%0)0+0-0t0E0m0t0g1y0t0K0=050Y0h0g0r1t0*0,011x1z1B1z0K1H1J1F0K0h0o0n0 1G0O1g0K0t0%120D0k0c0F0-0R011L1v010v0!0r0F0c0u0r1F1-1/1@1N1`1J1}1 0=0a0p0A0O0o0k0o0D0E150F0p0W1+0O0O0r0S2k18220F1g0d1)2x0K1%1$1(0n240-1B0F1|2h1F1q1s0(1M2H0E2J0F1Z1r1F0k2q1g2v2x2#0^1.2l2P1^2U0O0|0g0=0p0B2u2)0?2(232+1N2-2/2;0R2@1/2_2v2G012~0c2:040p0Q322w0@352|0-383a0p0M3e342)363k2;0L3o3g3q3i370o2.392;0T3v2`2*1u2}3A2 3b0q3F3h3I3j3K3C3b0j3O3x3Q3z3B3l0G3W2{3Y3s040B0I3%3H2Q3Z3L0B2?192^1h2Z182N2A0n2E360S1Z201g3}1j3{2%3^3305420W2!3X3:0s0=0W0v3o3G360i2;4m3P3:0F0v0=2q0S0t0r0O4y0r0J0c0h0O4r4g1^0;040f4I3(4t0=0}4G0r4O3/4K0=0z3o0p4n3y0F0=0x390r0b4H4a2w4$3Y4L0l0w3v0p4`4#4s1^4i040E4l4/3b4;4Q044S2q4!551^0o4p500D5a4}1N0s0S0=0N164U535b1N4L4^53064{5x4|4J5j4w0X4-17535z4P4~5l040P390D5p2#065w4{5r3j0=0D0c0m4V364L4Z5G5U370=0(5P3_5i0-5$5h5A5V045X0n5=5I1N0o0=0U5{4W2}4R0O4T4_5T5/014 51613r5+1J6d3y5~04020m0K0e6h3)4)4+4-5!3y5t675y5H620-4 2q0K5E6p564x4z4B4z4E4G6u4=0=4N5q694(5^5Y6O3:5;5(6T6r1J6t6S5?014?6x6z364 0r1B522#6.4%6f5-336^3Y6j020g6n6G2,6$4,4.2%696w5v6y4`5)6C5D0O5F6@5)6U6I4A4C6M775.6*4L6R786*6U5_6X4X045%7j6#044*6%7q4b790=0l6-7e0=6;5O7z5s0=5u5Q7c6}4h5C6E7h735j5K0y0O0b6{3f184d0r2x2Y7;3|1r3~2A2C2y1Y1!2A4F1J2x3}0@0d0W0Y0!0D04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)