Expression arithmétique et arbre binaire
Une expression arithmétique ne comportant que les quatre opérations \(+, - , ×, ÷\) peut être représentée sous forme d'arbre. La disposition des nœuds indique les priorités opératoires.
- Les feuilles représentent des nombres, elles ne possèdent pas de sous-arbre.
- Les nœuds internes représentent des opérateurs binaires, ils possèdent exactement deux sous arbres.
Par exemple, avec un parcours en profondeur infixe de l'arbre ci-dessous, on peut retrouver l'expression notée habituellement : \(((3 × (8 + 7)) - (2 + 1))\).

La classe Expr ci-après permet d’implémenter une structure
d’arbre binaire pour représenter de telles expressions.
Compléter la méthode récursive infixe qui renvoie une chaîne de caractères contenant
des parenthèses représentant l’expression arithmétique sur laquelle on l’applique.
Exemples
>>> a = Expr(Expr(None, 1, None), '+', Expr(None, 2, None))
>>> a.infixe()
'(1+2)'
>>> b = Expr(Expr(Expr(None, 1, None), '+', Expr(None, 2, None)), '*', Expr(Expr(None, 3, None),
'+', Expr(None, 4, None)))
>>> b.infixe()
'((1+2)*(3+4))'
>>> e = Expr(Expr(Expr(None, 3, None), '*', Expr(Expr(None, 8, None), '+', Expr(None, 7, None))),
'-', Expr(Expr(None, 2, None), '+', Expr(None, 1, None)))
>>> e.infixe()
'((3*(8+7))-(2+1))'
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
.1280136ewn-f(91T= :7dcokliy5.jsP3r/h,btquSèxam2;Ng0)é84_+EvpC050p0c0H0N0u0t0z0m0q0t0N0z0z0l010H0u0$010406050z0J0O0O0N0C0v040K0r0t0J0{0r0e050D12141618100$04051o1h1r0D1o100p0u0#0:0=0@0_0=0e0S0J0N0S0c0f0$0v0H0E1f0m0E0u0S0E0t1T0E0H0~050+0G0t0c1A0?0^011S1U1W1U0H1$1(1!0H0C1p1O0:1b0z0$0N0e0_0P011*1C010g0-0c0e0N0O0c1!1 21261,291(2c2e0~0a0m0A0C0r0$0r0z0u1e0e0m0)1}0C0C0c0q2z1h2h0e1p0D1O2M1_1{1`1#0p2j1D0u0e2b2w1!1x1z0;1+2W2Y0e0r2$1!0$2F1p2K2M2?11202A2(272,0C150t1!0N1R2F0g0_030Y0Y0q2-0c1W2+0r0f0j3h0~0m0j1h0N2@2`0 2_2i2|1,2~3032340c3601383a3c3e2Z3h0f24040m0P3n3p213r2K2V013w0N311p330E3537393b0)3G2,3I0B3k0B3O2J3q103S3u0_3V3X053Z3#3C3%3F2X3H3i0X3k0X3:1i3=3s2{1B3v0r2 3W3y3!3A3$3E3)423+3i0w3k0w482?3?2`3T3`4i3~3D3(3d4o3g3i0b3k0b4u4a3@4d3_4f3x3Y3z3B4C413f3I0o3k0o4L3Q4w3t4O3U4Q4h4S4j4U404n4X3i0W3k0W4$2L4(4c2)4+4g3{3}4k3 4m4E4?0f0i3k0i4{3R4x3^504R3|4T4l4D3*4G3h0T0~0j0T5d4}4y4,525k555m4F3I0j0j5r3m0D3o3;4%4b5w514A544V4=433h3K0j3N5I3P4|5M5g4z4.4B4;575T0j3-045-5u5#4*5%5j4/5l4W5,455/475Y5K5!4N4 5@534:565n5D4r5/4t60495L632}5x5P675B580j4I5/4K6e4v5=646j5(5Q5*693i0j4Z5/4#6s4M5f5?6w5^5)685C6B4^5/4`6G6g6I6v5O6x6l5{4p3h5a5/5c6T626V6i6X6L6y6N580P5q046?5;6h4e6.665`5S6#0P5F6^5H5J6f6+4)6W5i6~5A6!5o0P3K7g6`6,6|7b5z5R5+715.0P3/6*5e796-7m5_7d707f5}0P5 766t6{4P6}7n6z6O3J6b0P6d7G6H7w7l4-6/6Z7B3I0P6p7#7j7U7J7y6M6m5T0P6D7/5d1s2;1h2$2P0p1{2U5g4D2#1y1p2:0c2=3q611p4D852i0u0p0_392K5D3y8c8e6;5,252n0c8k7-6#733:7I010s0~3u876u270d3k8A8v0e0q0~0!0M2:8F7k0_0}040n8710778a2A8j018f2`7!8i8d8Z8l718n2d8p8)8r7f1!608v8D3L0m8`8N7)010z0p0~01920%4d1)0u0O0$0t0V2e0e0+9d0m0J2A160G2F2B000c8L2F0@0u1f0x92018T8|8X8(8!213,8%8q7e9D0m8o9F7Z3i5.3O8U2^3S8Y9B0e3I5}5j9S8*5o459I8-9K7p9!8=3o8`8{8v8x040)0g9y3T8^0m9@5g0g0O0~392X2y399{4*8Q0ha44 0G8Q0z3d9?8V8B1,8Q0F879`8G0~0Sa827aiakag3_0~0#apah0~aj8Val8O3U0~0pax8P0~0U8S8V9P869R9A0Y8g4q9E8/9GaT9$2e9(6A0f6b8uaD9_9-a+aH8~90049v9h0m0r0G0y0*0m8K2:0m2v0@0L2C0B0m0N1=0C0u0G1d0/aL6tafaP8kaS0f6p9XaQ8:3I4IaY8.7M58bj8?aD8 3ka+9-0f0m0S0N0J0q0E1)0n0m0=0m0z0r0J0z0f9o839r1QbCbEbG0m0Q9xbe4x9Ybh6Dbka!7N4Zbpb+58b)bu8}bw8_by0mbA0#3W0c0J0C0mbIbKb|1(b 2B1)0t000V0{0I0J0*0H0c0Fa?0$0V0C212CbN9I0r0O9k1)bZaM9@b%8#4@aUbr5T4^b.aV9L0f6Qa(b?a/b_8`bA0p2t2ybHbJ33bMbObQ9p0cbT2AcQ0rcS9u92b!9Qb$aQbh6%b*cG9)3I5acFcC6#c;5YcNaC8}aa0~ac0taec-8}0r0~0xa-0eanbDbF0cas8vd9040ldiaDdd04aocwb#8bc/cz5pcB9Z5D5qc`dz6B6@3Oc at01d204d4d6aOaDdkdbdt4~2}avb}b dnd80~dmaBdIdpawdsd79zbgdw5Edybm6B5FdCd;3h8tc~cNdIdKdMa-dQdcaFcRcgdYdT1,dkd#2?d0e7au9;c,dOdud-9C6B3Kc=c{5o5W8,aZc?a#eq2M3oaN3Q5Mcyek3h9N339Yd^5-erbqdDeD9+b^ec3T9:9=a-9_dc0g0~c!0H0Y9h0c0Y0gb~0-1(a-a6a-d~ade,aJbc4adS0meB9U6B9WeFblaW3h9#9Jet7N0j9Wb=ed01a*b_a-b@9v2F0e0#c(1)0k0CcebL0u0ma`ac0J1(9c0H9`d*ehd,8)bh0ja%e~b/5,4rd@f0fDeNdIb@c 2xbJ1)2,b~2UeY9g2Y0me(0Je*2fc+fyezbffBd.bjfFf46nbof3eo5Dbt9,d|9/0~2F0Hb 1gd$8ve/d5e0dae2dqdfbGe63T0r8^0u0zgc5g0s8I040R1fdhg2dP8^cngi4*g4dNf*dPg7e^5$e3c(e5gqd8gfghgGf9gk0~gn2Yeggyeif,eC6Cd:fKb-f?eLgVew3re^e`5DcJf/f@6PeJfG8scJd{9.aDeR3AeT8EgB5?eW042X290Mgpd+3Te-g}a9abe:h8aqe=gQ2LeAdvgUc;g,g!c_gZeHc}5J8@bxfchc1,fe92fgfi0uc8332F2:0Vac9db59s8X0eh21)2Cc9bR9q2x1Q2bhf8We_hie{3JdFhld^6?g/f:7.dFf83TfOcNbF0,fY2C0q160N2H0L9q9vhWhhejh!72gWcHi4fJi6d`f`fcamdLgu4 e9if270z730000akeyhgf+9T7!emh%f07gh*g-3Jemg?bydI9:0ugx2LeP5ggwg604dRh5gCg9bWh43qiJ4*ge0~ggiie88^2,0Hi!0_gMgmgoe;8Ri0iraRdw7si5c@3ii@i8i_3J9NiCdHidgJebdIihgKh/il0hinj75gdk0Zi)aEiejciW0~jfjjh9d3hbiPjkiNg8bVdgiMiOfz4yiYhM0uh3i.0h0UiocxhZ7!e}hYg:7CiyeL7EeNj1dod3jgj6j4j2jXjljg0e0Gd31_jFe.hag5hv0_e1j:jhc4b~0Ci.jHaBiphXg)i`fEjNh+71fIhoiwa%j09-iEiYiH3Ld}j.kej5gAjr64gDcSjXgIkp0~i%jgi+gOiTgRf98Qe?3Q0mj~i1gTi3f.k3iz7#jQh(f_eOjU8}dpj3iUkjdlj%jWjn27jejgiLj?j=kldU9;e4kxiqgzjtj?dph1jDk.hX5ga6j|jZk:jmk~b?il0UjbebkEi;bh7/i^a#lai|lcb;ibiDf|04f~g0kXjibd2^0D897?847^811h0H7{lx2S2N0N1%lu0D7_8U0)0+0-0z04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)