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

.128013kg[: r)S/N(.lo4y6b=ac15ud3t2!8_Pw7evp-fh09mn]is050z0J0B0u0U0n0V0f0v0n0u0V0V0t010B0U0L010406050V0y0R0R0u0g0q040i0o0n0y0:0o0S050j0`0|0~100^0L04051g191j0j1g0^0z0U0K0(0*0,0.0*0S0c0y0u0c0J0M0L0q0B0O170f0O0U0c0O0n1L0O0B0?050Z0s0n0J1s0+0-011K1M1O1M0B1U1W1S0B0g1h1G0(130V0L0u0S0.0C011Y1u010N0#0J0S0u0R0J1S1@1_1~1!211W24260?0a0f0G0g0o0L0o0V0U160S0f0X1=0g0g0J0v2r19290S1h0j1G2E1.1:1/1T0z2b1v0U0S232o1S1p1r0)1Z2O2Q0S0o2U1S0L2x1h2C2E2+0_1^2s2W1 2!0g0}0n1S0u1J2x0N0.030F0F0v2#0J1O2Z0o0M0w390?0f0w190u2,2/0@2.2a2;1!2?2^2`2|0J2~01303234362R390M1|040f0C3f3h1_3j2C2N013o0u2_1h2{0O2}2 31330X3y2!3A0A3c0A3G2B3i0^3K3m0.3N3P053R3T3u3V3x2P3z3a0p3c0p3(1a3*3k2:1t3n0o2@3O3q3S3s3U3w3X3`3Z3a0x3c0x402+3+2/3L3/4a3?3v3W354g383a0r3c0r4m423,453.473p3Q3r3t4u3_373A0I3c0I4D3I4o3l4G3M4I494K4b4M3^4f4P3a0E3c0E4U2D4W442X4Z483:3=4c3@4e4w4+0M0Q3c0Q4:3J4p3-4^4J3;4L4d4v3Y4y390P0?0w0P554=4q4!4`5c4}5e4x3A0w0w5j3e0j3g3)3I1k2)192U2H0z1:2M584v2T1q1h2(0J2*3i5C2D054v5T2a0U0z0.312C5v3q5#5%4~5f5*0f2f0J5-5t505x2E5B4F4@0b0?0X0N5V3D434q0N0?1^0g330y0g0V0F0*0g1B6c6365580=040l6k5}2=0?0~0s2x6q574Y6n0h0e630^415D3K5,015(2/3A3C5b6I4)4 3{3B1}5=5@4O6S6N5A3D0f6$6l4Y0S680~6b6d630f6(4@0o0?0t6/6;1 6n0d0T6D6x5!5$6J0F5)3a3#4K6P5.5u766U255?735^6S773G6$6%6r3n0?2d0J6_7n0.6?046^6F2D6:7t016|704?6s046u6w7y5Z7F1!6n6~7K6E2-6H726K1_3A3}787U7a503}5;7e6W4*6S7Y7k7l6`1!5 040H1K1W7s6y4@6*047q7`4X6=0?0D7x2+7A7{6{0?6}6C7Q7E0f79750M4j7Z7*6R4h8i7d268l5/4i1S6!7l8w87817G0u807M7u6@8C4q7p228e587v0m8K6)682m8O4@6n6p7K7:0.0R0U0?5l8W7B6A6 8%4p8g6L4z5+7!7h8n4A7(8q7g6X8?8u3g8x7/7B7}696-0V8S1 8M967o7H0L0L230z990.8U9g3M6t9j7D8+8z1!8Z5j9m0?0T0h8*7S8,7!8h4R8k8`7+8n4R8^7f6Q8s0M9C7.8 8X017=0U627K8y8D9k7H9t040d9j9r048$9y9p9h9u8G8L83853i9W3L0b0v0?0k177r9o9X6n8c4n8e8-7W4,8:8r7b0M4-9Ia9504-5{6#8 8w9Q7}7 9 3L98ao587}0u9c9e9!8V9+9Xat9!9$ar4Y9(9*5U8(9u9w8daoa50S3A529D9Kaa52ad9E8m5gaR9O8x9Q9S9U86al9laE8T8a9%8!043Fa-89047Pa*7B7v849/4Y9_9{9}9!a242aN9A8.5ha8aX9L5k8p9J7#6Sbeahaja$918I7_a@1!aqaz8H9b9d0S9fbq9-6o9jaBbz7Ca/bE9(a?bt6maK9xaI9z5-8h5wbbaT5_5xaWbUbi5`a#a%0?2x0B6c189Va+04930o6c95aM2-0j5Y5E5S5G5P190B5Jb~2K2F0u1Vb{0j5H6E0X0Z0#0V04.