Ajout d'une feuille à un arbre
😀 On considère ici des arbres non étiquetés et ordonnés.
Ajouter une feuille à un nœud
graph TB
N0( )
N0 --> |0|N1( )
N0 --> |1|N2( )
N0 --> |2|N3( )
N1 --> |0|N4( )
N2 --> |0|N5( )
N2 --> |1|N6( )
N3 --> |0|N7( )
N3 --> |1|N10( )
N5 --> |0|N8( )
N7 --> |0|N9( )
En considérant l'arbre dessiné ci-dessus, on montre plusieurs exemples d'ajout d'une feuille à droite des enfants (éventuels) d'un nœud indiqué avec la notation de Neveu.
graph TB
N0( )
N0 --> N1( )
N0 --> N2( )
N0 --> N3( )
N0 --> N3b{ }
N1 --> N4( )
N2 --> N5( )
N2 --> N6( )
N3 --> N7( )
N3 --> N10( )
N5 --> N8( )
N7 --> N9( )
Une feuille est ajoutée à droite des enfants de la racine.
graph TB
N0( )
N0 --> |0|N1( )
N0 --> N2( )
N0 --> N3( )
N1 --> N4( )
N1 --> N4b{ }
N2 --> N5( )
N2 --> N6( )
N3 --> N7( )
N3 --> N10( )
N5 --> N8( )
N7 --> N9( )
Une feuille est ajoutée à droite des enfants du sous-arbre d'indice 0 issu de la racine.
graph TB
N0( )
N0 --> N1( )
N0 --> |1|N2( )
N0 --> N3( )
N1 --> N4( )
N2 --> |0|N5( )
N2 --> N6( )
N3 --> N7( )
N3 --> N10( )
N5 --> |0|N8( )
N7 --> N9( )
N8 --> M{ }
Une feuille est créée comme seul enfant du nœud de filiation [0, 0, 1].
Exercice
Coder une fonction ajout_feuille qui prend un arbre non étiqueté en paramètre et une filiation avec la notation de Neveu et qui renvoie un nouvel arbre de même structure, mais avec une feuille en plus à la suite des enfants du nœud indiqué par la filiation.
Indice
Il sera utile d'adapter le code de la fonction de copie profonde d'un arbre.
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
.339.128013],59/f.q!78rnb N_o=ylaeêpcwgu)vd4613kRméhtsP(S0à2j[i:050H0y0R0x0#0w0S0q0B0w0x0S0S0u010R0#0A010406050S0E0O0O0x0n0v040V0t0w0E0`0t0o050g111315170 0A04051n1g1q0g1n0 0H0#0G0/0;0?0^0Q0#0D0Q0w1E0Q0R0}050*0p0w0y1z0=0@011D1F1H1F0R1N1P1L0R0n1o0R0Q1R1B010h0,0y0o0x0O0y010/1a0S0A0x0o0^0Y1L1|1~1,1T1/1P1=1@0}0b0q0T0n0t0A0t0S0#1d0o0q0(1`0n0n0y0B2l1g230o1o0g1*2y1%1)1(1M0H250^1H0o1;2i1L1w1y0:1S2I0#2K0o0t2O1L0A2r1o2w2y2$101}2m2Q1-2V0n140w0}0q0K2v2*0~2)242,1T2.2:2=0Y2^1~2`2w2H012 0x2;040q0L332x0 362}0^393b0q0I3f352*373l2=0e3p3h3r3j380t2/3a2=0J3w2{2+1A2~3B303c0l3G3i3J3k3L3D3c0m3P3y3R3A3C3m0f3X2|3Z3t040K0W3(3I2R3!3M0K2@1h2_3x3)3;3+0K323_343{3:2-3T3b0K3e413g3H3s460}0K3o4a3q3|453#4f3v4i434d4m3,3F4p4c3z3~3O4v3Q3}4e3,3W4A3Y4C4s0K3%4G4k3K4s0Y3.4M444O3M0Y3^2$4q4x4D0Y404Y4w3*4#494(4B4l4V4h4-4H4/3U0Y4o4=4N3S4P4u4{4T4}4V4z2(1t2!1g2O2B0H1)2G3z0B2W1^1o591p57552(5f0(2#4?1T0M0}0(0h3p4)3;0C2=5x4.2~0h0}0x0Z0t1c0y0s0h0y0E0,1P5C5r0^0|040U5S4|385G0n0p2r5Y51015V0d3p0q5y2-0}270#0x2u4i5:1T5V0F0$3/375A3c0q645)370S0H0}016b0N1;0G0t0#1Q0E2m2V0E0G0y0w0q155%1Q2V2m0P0`0j0E0)0P0d2n1Q0O0z1@0q0S1%0E2t0E5(4S676963640x6n0B0q6j1Q5N5P0w1P0q1;0q0A1b0S6C0X2n2f2k1Q0(0.1;0h1~0R0.0P6n0o0R6z0-2n0E0q0o0a0E0H603z682=640q2T1w6y0P6*150q0;0q5?5^0#1e6X0`1H0S6{7n0x760t0*2l6D0q0r0y6n0E0i7b3Z7d6S0q6b013w067f5/5D0^5t045v663z625/5`7X385F045f0A6h7$3Z5V5X7*5T5!046r6O2(7+5}5 4p7V7V5{0^0S2104016d0o6f6h6X6k5J6n6p7}6t7t6w0#6y6A6C7x1`7:1Q2Z0t0h1e0(7S8384657+0o0}6_6{0S5.86010t0}0u8M8G5#6s3w8E8F7`7Z2r710n1f4i7W7`5V0!8W8X858T7.2g7;7_5Z7@7=3}0}0S5J0S0s8l8{1-5}8S8Z5=3B965Z8H048~0E90928)8N0t622T9a5*9c8J708L8D8E8N5V0c7T7U7f8N9p0o6`9r9n378P048R9i8;9h4Y8:97040#5w9L7`9c7q5_2$8*5Z9I0u9K9Z9v0}0!0c829O8X9B0}6l8j915$7~2_9!5*9$9G3z8,932~0}7/8@7 8+0}7^a79b8}8 9^8V8^5*959U5Z7Z8z0n9 3*ad9faf9`349|9H9l8(9)8;9q6|a25U0}9x9t849;049?6oat0yaE8O0}7Lah3s5G0A0A1;7aaUa0a99,0F8.8Yal8I0-aPa#7?0}9.3`8/aKaM0waOap3;9~akai9+aH9/9u8;0#915I1ca}1-a aA9V5=0,5@9Y2_9jaSaQ9c2h0AaQ7@a)aI9Pa,04anbba39Rbz0^9k0}9mb03s0p0}0n1~0Da/abb15WbnbJ0428bra9bn8I9D8KbW040F5~a*8/aw3z7Z9SbC7{0#b:9I0k9(9{aKb75H5J0Rb$a?42b+9:8;a`a|a:a~bmc85;7|aXaZb$aabk8;a5bOcia8bRcbbAaC9sbP37a1cp3kbFb$0cb(b*a^7+7Z6o0Scl349*04c13gc3b5bfaL8iaN9Ncm9#cact4xaWaY0oa!cYa;coc(8|7|b90R5L6!5QcI2xcKchcJaBb!9Fcw5+9+bYbBc~9w5-bHcZbxbh7r1eb$cBaI8N8!0)6Nazb`c5cSa{cU421g5o0y2y2Zds581x5a2B2E2z0x1Odv0g590 dF0)0+0-04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)