Aller au contenu

Miroir d'un arbre binaire

Un arbre binaire

graph TB
    N0("11")
    N0 --> N1("42")
    N0 --> N2("11")
    N1 --> N11(" ")
    N1 --> N12("21")
    N12 --> N121(" ")
    N12 --> N122(" ")
    N2 --> N21(" ")
    N2 --> N22(" ")
🐍 Script Python
N_11_bis = Noeud(11)
N_21 = Noeud(21)
N_42 = Noeud(42, None, N_21)
N_11 = Noeud(11, N_42, N_11_bis)
ab = N_11

Son miroir est :

graph TB
    N0("11")
    N0 --> N1("11")
    N0 --> N2("42")
    N1 --> N11(" ")
    N1 --> N12(" ")
    N2 --> N21("21")
    N2 --> N22(" ")
    N21 --> N211(" ")
    N21 --> N212(" ")
🐍 Script Python
N_21 = Noeud(21)
N_11_bis = Noeud(11)
N_42 = Noeud(42, N_21, None)
N_11 = Noeud(11, N_11_bis, N_42)
ab = N_11

Exercice

Coder une fonction miroir qui prend en paramètre ab un arbre binaire représenté à l'aide de la classe Noeud (et/ou None) et qui renvoie son arbre miroir.

👍 ab_1 == ab_2 réalise un test d'égalité entre deux arbres ab_1 et ab_2, grâce à la méthode __eq__ fournie avec la classe Noeud. On peut s'en servir pour vérifier les résultats.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
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 : /
.128013,5/f.rnb No=ylaepcwgu)vd4613kRmhtsP(S2i:050y0q0H0p0N0o0I0j0s0o0p0I0I0m010H0N0r010406050I0v0F0F0p0g0n040L0l0o0v0)0l0h050d0:0=0@0_0.0r040519121c0d190.0y0N0x0X0Z0#0%0G0N0u0G0o1q0G0H0,050S0i0o0q1l0!0$011p1r1t1r0H1z1B1x0H0g1a0H0G1D1n010e0U0q0h0p0F0q010X0|0I0r0p0h0%0M1x1+1-1U1F1X1B1!1$0,0a0j0J0g0l0r0l0I0N0 0h0j0Q1)0g0g0q0s27121=0h1a0d1S2k1P1R1Q1y0y1@0%1t0h1Z241x1i1k0Y1E2u0N2w0h0l2A1x0r2d1a2i2k2O0/1,282C1V2H0g0?0o0,0B2h2S0-2R1?2U1F2W2Y0,0M2$1-2(2i2t012-0p2Z040C2;2j0.2@2+0%2`2|0z2 2?2S2^350,0c38313a332_0l2X2{0,0A381d2M122A2n0y1R2s3i0s2I1%1a3t1b3r2Q132%053z0Q2N3h1m1F0D0,0Q0e3p323O0%0t0,0j3U3N2D2_0e0,0F0N213,3#2*3W010+040K3/2T3;0h0,0p0i3_2^3?0w0O3f0j463!3V3%0I1:04010E1Z0x0l0N1C0o000@0i2d0j3+3-0g291C3~0145472)3`3%3Q040N3T3H2=483$2V3}3 4H2j4J3:3%0l3Y4E0I384Q4B1V0D0s0,0k100q403i3?444O0-474;4Y2^4D2d0H0v0g114/4?3i4#4%4)4y464A4@0,0q0V4*4/564,0,4.2O064=4z494!0,4_4{4}2O4 3{520q0v0y4+3;3?3^5c5l2,4M5y4S0,0f5G4L040x2{5v0g5K1F3?0b4X5d5t044r4i5Q5C4K5S0,5B2Q5D345F5$4R1V0l5I5R5-040y3-0H5b5+5%0%425U4~5W3%3|5Y3,5!5@3=5)6a663~6a5=045J5/4Z5E040u0p0v0s0G5}3I5,6b040w0w3f123K0q2k2L6D3s1j3u2n2q2l3~1B2k3t0.0d0Q0S0U0I04.