Parcours en largeur d'un arbre binaire

Un arbre binaire est soit vide, représenté en Python par la valeur None, soit un nœud représenté par un triplet (g, x, d) où x est l’étiquette du nœud et g et d sont les sous-arbres gauche et droit.

On souhaite écrire une fonction parcours_largeur qui prend en paramètre un arbre binaire et qui renvoie la liste des étiquettes des nœuds de l’arbre parcourus en largeur.

Exemple

Python Console Session
>>> arbre = ( ( (None, 1, None), 2, (None, 3, None) ), 4, ( (None, 5, None), 6, (None, 7, None) ) )
>>> parcours_largeur(arbre)
[4, 2, 6, 1, 3, 5, 7]
Compléter le code ci-dessous

###(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 : 5/5

.128013b]=wlSd[f-:431(gnah.p/uerovm)6 7!2iy9c8s_PNtk05050h0y0S0s0J0f0O0F0M0f0s0O0O0d010S0J0v010406050O0x0C0C0s0z0K040g0A0f0x0:0A0r050w0`0|0~100^0v04051g191j0w1g0^0h0J0B0(0*0,0.0*0r0q0x0s0q0y0k0v0K0S0t170F0t0J0q0t0f1L0t0S0?050Z0b0f0y1s0+0-011K1M1O1M0S1U1W1S0S0z1h1G0(130O0v0s0r0.0I011Y1u010j0#0y0r0s0C0y1S1@1_1~1!211W24260?0a0F0Q0z0A0v0A0O0J160r0F0X1=0z0z0y0M2r19290r1h0w1G2E1.1:1/1T0h2b1v0J0r232o1S1p1r0)1Z2O2Q0r0A2U1S0v2x1h2C2E2+0_1^2s2W1 2!0z0}0f1S0s1J2x0j0.030P0P0M2#0y1O2Z0A0k0o390?0F0o190s2,2/0@2.2a2;1!2?2^2`2|0y2~01303234362R390k1|040F0I3f3h1_3j2C2N013o0s2_1h2{0t2}2 31330X3y2!3A0n3c0n3G2B3i0^3K3m0.3N3P053R3T3u3V3x2P3z3a0m3c0m3(1a3*3k2:1t3n0A2@3O3q3S3s3U3w3X3`3Z3a0V3c0V402+3+2/3L3/4a3?3v3W354g383a0E3c0E4m423,453.473p3Q3r3t4u3_373A0G3c0G4D3I4o3l4G3M4I494K4b4M3^4f4P3a0N3c0N4U2D4W442X4Z483:3=4c3@4e4w4+0k0L3c0L4:3J4p3-4^4J3;4L4d4v3Y4y390U0?0o0U554=4q4!4`5c4}5e4x3A0o0o5j3e0w3g3)3I1k2)192U2H0h1:2M584v2T1q1h2(0y2*3i5C2D054v5T2a0J0h0.312C5v3q5#5%4~5f5*0F2f0y5-5t505x2E5B4F4@0T0?0X0j5V5Z4?1 0e3c63434q0j0?1^0z330x0z0O0P0*0z1B6h695}1 0=040p6p574Y0r0?0~0b2x6v4X4@6s0D0l630^415D3K5,015(2/3A3C5b6O4)4 3{3B1}5=5@4O6Y6T5A3D0F6,6a586y046e6g6i630F6.4Y0A0?0d6^6`6F0?0i0c6J6D2s6V0P5)3a3#4K785^6Y3#5;255?6P5.5u7b1S6*6,6-6q3n0?2d0y6 7t0.6|046~6L2D6_7z016s0i764q6z0z6B7x7E643L6s747R6K2-6N5$7l7a0k3}7d7!6W5/3|6!7j6$4*6Y7(3G7r7G6w5~0?0e1K1W7y7`2=7v22806E1 7B0H7D2+7_861!7J0c6I7W7L787$4j7)7:6X4h0k4j7i268o7,8r7p3g7^7^7082040s85651!7B8a3i8c8H3.837 7R8C8I0?0u7L6/6d2m8W4Y6s6u8R7H0C0J0?5l8(818e0?0D758.5!7*796R4z5+8_7f8q4A8t7k7+7n0k4A5{6+8A8M7M6;0~6?0O8!4@7B8V8@8N3M6z0v0v230h9h6r0?8%7Y8/8O8E9t8:047K9l3L8*5j9B0.7U8=8i9F8k8{0k4R8n7l8 5g4R928v959S7@9a9b585 040J627R9(6x6z9J7I729=9H048-9x8d9K0?7V8b8S7A0?898G3L0T0M0?0R177Q9|9m6s8h4n8j8_7$4-9T94504-9Y9U6%8qam9$9%7ra29n047w9=9j9=6:0s9p9r9=8$aF9;9F587J9^8+9`aK9 9Mai9Oak9Q52an7m5052arao6Ya#aw8Aaz9*9,a68X9AaO8#9@a_4@9_3Fa|9u04a08Laz888K3I9/5~a904ab2QaU04ah42aY5-7$5k8}9Z5_5ia*a%6Ybm98ax8B7H6:aCb08T049kae9caH9q0r9sbB9~6taMa^bFaPa{bQ4Ya~bf0caWbibF9P1_5v5`6U8~at5g5w7.8uas7;8qb-bvay7H9*2x0S6h189.az6:6=0A6h9g9N2-0w5Y5E5S5G5P190S5Jce2K2F0s1Vcb0w5H6K0X0Z0#0O04.