Insertion dans un ABR (3)
Dans cet exercice, on considère des arbres binaires de recherche qui sont :
- soit l’arbre vide identifié par
None
; - soit un nœud, contenant une clé et deux sous-arbres gauche et droit et représenté
par un triplet
(g, v, d)
oĂąg
etd
sont les sous-arbres gauche et droit etv
la clé.
Ainsi, l’arbre binaire de recherche abr1
ci-
contre est créé par le code python ci-
dessous
Écrire une fonction récursive insertion_abr(a, cle)
qui prend en paramètres une
clé cle
et un arbre binaire de recherche a
, et qui renvoie un arbre binaire de recherche
dans lequel cle
a été insérée.
Dans le cas oĂą cle
est déjà présente dans a
, la fonction renvoie l’arbre a inchangé.
Exemples
Compléter le script 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
.128013l( _4:;=vm26-uS8ws3/]fr7gebh[pPicN05a,onkyd1)t050R0A0U0L0G0b0s0d0H0b0L0s0s0i010U0G0E010406050s0o0k0k0L0x0Q040p0N0b0o0/0N0O050u0_0{0}0 0@0E04051f181i0u1f0@0R0G0j0%0)0+0-0)0O0z0o0L0z0A0n0E0Q0U0C160d0C0G0z0C0b1K0C0U0=050Y0B0b0A1r0*0,011J1L1N1L0U1T1V1R0U0x1g1F0%120s0E0L0O0-0l011X1t010w0!0A0O0L0k0A1R1?1^1}1Z201V23250=0a0d0F0x0N0E0N0s0G150O0d0W1;0x0x0A0H2q18280O1g0u1F2D1-1/1.1S0R2a1u0G0O222n1R1o1q0(1Y2N2P0O0N2T1R0E2w1g2B2D2*0^1@2r2V1~2Z0x0|0b1R0L1I2w0w0-030e0e0H2!0A1N2Y0N0n0l0n0S0=0S180L2+2.0?2-292:1Z2=2@2_2{0A2}012 3133352Q38380=0l3e3g1^3i2B2M013n0L2^1g2`0C2|2~30320W3x2Z3z0t0=0t3D2A3h0@3H3l0-3K3M053O3Q3t3S3w2O3y390f0=0f3#193%3j2/1s3m0N2?3L3p3P3r3R3v3U3@3W390K0=0K3}2*3(2.3I3,473:3u3T344d37390m0=0m4j3 3)423+443o3N3q3s4r3?363z0y0=0y4A3F4l3k4D3J4F464H484J3=4c4M390q0=0q4R2C1j2(182T2G0R1/2L3*014s2S1p1g2%0A2)3h3$3F054s52290G0R0-302B3z3b4H5a5c4b4t4(3a1|2e0A5j4s3V4v5n2D3f403I0P0=0W0w544.4C2W010r0=0d5E58415H0O0w0=2O0s0A0x2q0e0L0B0x5M5y4`0;040c5$5G2;0=0L5,4m5(0=0M5M5L5-3m0=0(0A5;4U5H5)0T0g5_0@3~553H5i015d2.3z1{5h5b6c5k5t6f5o245q6j5s4u6m5w040d6w5`5=4V5A040G5D682C6y615.045:6F6v5%4V0N5J6C0s5_6O5H0P0H0=0I165 6M6V1~5)656M672,6a6i6d1^3X3p6b4$5l3^0n3Y0d5p5r4L6{3Y6u6x756H5O1~6B2w0U0o0x176M773I5)5+6%5{0-6X6Z6#60781Z5)5^7g6(5|045~7r7i5@6U7m017o046!2P7B5?040T5M6-536/5j5e3_6@6:6k6s7V6~6o704%6{3`746x7x7n0=4t6E2*7h4`0O5}1V7E6z5H0N0=020z0U0h7{6I7y6L6.7|6)0=0D7L4V0k0G3c8d620=0v6+4k7B6^0e7U0n4g6h7%6`4e8s6n258v6l4f1R0u3f767,7F7a0X7d7f7=7-017j8i6J877R897t8b8S1Z8f0=0J8Z0-5)0v7v8O7F7^6K8(8Q8Y7l8W0-8#043d8@858)8k8,3h7?4V8/5T5V5X5Z5#8}7s8 5*8;8/8U698^8=048c9b3I8`3C9n7M8+849c3J7_6$888~9k0T7O6,8o7X8r4x8u6q718x4x7#8A9K7(9M8E8G8I9j6B7:9u4n9x9Z4`7~04020b829$945/8;5)9m9z9v8`8|9?7C048l7P9F7T6e394O9J6_8C0n4O9O6pa57Za79T6v8H936W0=7b8M9-8j9e9r9.6C0O5U5W0G165Y5!9:0=7k9`7@9/apan9=8V9A8`8%aF8a9|913Fah6J7AaM8X7NaP6G8P9gaz9l8;9^a#9t7w8.aEaC4V9;a%8g049qa.an0v9D8n9n8p8r4*a47Y5m4*a98Bacb03D758P8K7c7eam8T9~6%0u574/514;4~180U4@bp2J2E5Z1V2D4=670W0Y0!0s04.
Aide
Réfléchir à une fonction récursive
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)