Arbre des (taille, hauteur) d'un autre arbre
🏷️ On considère ici des arbres étiquetés et ordonnés.
Exemple
Partant de l'arbre à gauche, on souhaite construire l'arbre de droite, de même structure, où chaque nœud indique la taille et la hauteur du sous-arbre associé au nœud.
flowchart TB
subgraph "(taille, hauteur) de chaque nœud"
direction TB
B1("(4, 2)")
B2("(2, 1)")
B1 --- B2
B3("(1, 0)")
B1 --- B3
B4("(1, 0)")
B2 --- B4
end
subgraph "Arbre"
direction TB
A1("53")
A2("14")
A1 --- A2
A3("27")
A1 --- A3
A4("31")
A2 --- A4
end
Exercice
Coder une fonction tailles_hauteurs qui prend un arbre ordonné et étiqueté en paramètre et qui renvoie un arbre de structure identique, avec pour étiquettes le tuple (taille, hauteur) associé à chaque sous-arbre du nœud considéré.
Indice
Il faut renvoyer un nouveau nœud, une liste à deux éléments :
- qui a une racine dont les éléments ont été calculés par récursivité,
- qui a une liste de sous-arbres également obtenus de manière récursive !
Il faudra faire un seul appel récursif par sous-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.128013x/.r;nbylaeêu)d63HAm(P+02-],59f7K8 _o=pcwgv41kRéhtsSàC[i:050q0m0Z0l0)0k0!0K0P0k0l0!0!0N010Z0)0O010406050!0o0v0v0l0f0j040#0M0k0o0~0M0h050d1517191b130O04051r1k1u0d1r130q0)0S0?0^0`0|0Y0)0R0Y0k1I0Y0Z11050.0i0k0m1D0_0{011H1J1L1J0Z1R1T1P0Z0f1s0Z0Y1V1F010G0:0m0h0l0v0m010?1e0!0O0l0h0|0A1P20221:1X1?1T1_1{110b0K0x0f0M0O0M0!0)1h0h0K0,1~0f0f0m0P2p1k270h1s0d1.2C1+1-1,1Q0q290|1L0h1^2m1P1A1C0@1W2M0)2O0h0M2S1P0O2v1s2A2C2*14212q2U1;2Z0f180k110K0U2z2.122-282:1X2=2@2_0A2|222~2A2L01330l2^040K0s372B133a310|3d3f0K0T3j392.3b3p2_0E3t3l3v3n3c0M2?3e2_0r3A2 2/1E323F343g0H3K3m3N3o3P3H3g0J3T3C3V3E3G3q0F3#303%3x040U0z3,3M2V3(3Q0U2{1l2}3B3-3^3/0U363}383 3@2;3X3f0U3i453k3L3w4a110U3s4e3u40493)4j3z4m474h4q3:3J4t4g3D423S4z3U414i3:3!4E3$4G4w0U3+4m1v2(1k2S2F0q1-2K3D0P2!1|1s4U1t4S2,4Q4!0,2)4L1;0V110,0G3t4A3%0Q2_4_4F2;0G110.0:1T0!0L0Y0l1g0m0o0f0!4~4:1X10040w5f4o3211190i2v5l485h110p0*3?3b4|3g0K5C5s3b0!0q11015J0W1^0S0M0)1U0o2q2Z0o0S0m0k0K5p2v2r1U0v0n1{0K0!1+0o2x5c0m0D5y3D5G2_5C5Y5V0P0K0h0a0o0q0=0X0R590c0K0$0K0w530k1T0D0K585a5c0p0K1L0X5e4K5m0|5@5B5C655*0M0o0!0B5Z0m0=2s0k006A0K2X2o0)3e5=3%6r5_0K5J013A6P4`41110f0l0P2X0m5E3D5i5;4m0K6V2;111^0G220Z6n2*6,4 1X0M110N3t6_5g3o5o0f5q6$4t6U6`72040G1g5c566:6=6@2}706p016|046~6+6-5u040(0C6T5_7r7a6b1T6 7y7m6}7C79010v0)113=777x7H0h116g0Z5b0f7G717E7o7W7l7n0B6%3%7J4j6 7k5t0|0P0U11030K0t0u0%0I7w5D7H4=7b3F7!7.3c110!6w566A823b0M5A2X8a4B6/0h6;0h6?7(3^5i5x7N6P7}7X7Q045q220P0Y766^7D7n7p8B7P520/6c6B57597T7e8m1;5i5k4Q8G04866x0L898T7X5i0p7|8r7D8u7c0Z7e0L7g8k7i388C110e8P5n040l0O0O1^0q8`0|8R92848v6Y0h8y8A2}7D8$8(788t52956)8f3.7R9l3^8D9o6.978x8z9j110(957*047M2,7H5i7v8q8)8U7A9b387-8b110y8E7j8*9i9H9g7l7 0)4^7q8U7S7U9r6{11020k0Z0g9)7a0Y9w048p2*068r9{9N8g049%5c9:7Y9R9M9T9 8(a69Ka27n9Qa29A3|9_9W838ua07V9#7Xaca42B9}7)7K3:a87~6X0-5c1jan7l5i0(8S9D9h04aa8!aD116*8FaIal9?0paO9S8U8,8.8:8laL839F3K0d4-0m2C2%a+4T1B4V2F2I2D0l1Sa.0d4U13a{0-8I0!04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)