moyen
Pile avec une liste chainée
On veut écrire une classe pour gérer une pile à l'aide d'une liste chainée. On dispose d'une classe Maillon permettant la création d'un maillon de la chaine, celui-ci étant constitué d'une donnée valeur et d'une référence au maillon suivant de la chaine:
🐍 Script Python class Maillon :
def __init__ ( self , valeur , suivant ):
self . valeur = valeur
self . suivant = suivant
Une pile non vide est représentée par des maillons avec un maillon de tête, le dernier ajouté à la pile avec la fonction empile et celui qu'on va enlever de la pile avec la fonction depile.
Le maillon de tête contient l'élément au sommet de la pile. Ci-dessous la représentation d'une pile dans laquelle on a empilé 9, puis 2, puis 8, puis 5:
Compléter la classe Pile et vérifier votre travail sur les exemples. On vous donne la méthode __init__ qui initialise une pile, la méthode __str__ qui permet un affichage des éléments de la pile, la méthode est_vide qui renvoie True si la pile est vide et False sinon.
Exemples
>>> p = Pile () # une pile vide
>>> p . est_vide ()
True
>>> p . empile ( 9 )
>>> p . est_vide ()
False
>>> p . empile ( 5 )
>>> p . empile ( 8 )
>>> print ( p )
8 -> 5 -> 9
>>> p . depile ()
8
>>> p . depile ()
5
Version vide Version à trous
.128013,n w-5e9(38m=R0pMrh)kDuois;cb/6.S1vàtq_dg:LéxaFy24P7+fNl050O0h0L0U0z0(0A0d0C0(0U0A0A0n010L0z0q010406050A0x0m0m0U0s0W040H0y0(0x0|0y0c0d020U0m0q0B0d0o0h160s0M0x0h0A050E13151719110q041x1E051H0E1H1J1E110O0z0J0;0?0^0`0t0z0P0t0(1X0t0L0 050,0D0(0h1S0@0_011W1Y1!1Y0L1*1,1(0L0D0y0O191)0s1F0L0t0;1c0A0q0U0c0`0X011.1U010$0.0h0c1k0h1(292b2g1:2j1,2m0m2o040a0d0Z0s0y0q0y0A0z1f1h0*270s0s0h0C2J1x2q0c1F0E252V0L2322240O2s0`1!0c2l2G1(1P1R0=1/2)0z2+0c1 1Q1(0q2O1F2T2V30122a1h2;2h2_0s160(0 0d0I2S3410332r361:383a3c0X3f2b3h2T2(013m0U3b040d0k3q2U113t3k0`3w3y0d0Y3C3s343u3I3c0g3M3E3O3G3v0y393x3c0F3T3i351T3l3Y3n3z0!3%3F3*3H3,3!3z0l3:3V3=3X3Z3J0i3{3j3}3Q040I0p423)2=3~3-0I3e1y3g3U434b450I3p4g3r4i4a373@3y0I3B4o3D3(3P4t0 0I3L4x3N4j4s3 4C3S4F4q4A4J463$4M4z3W4l3/4S3;4k4B463`4X3|4Z4P0I414%4H3+4P0X484-4r4/3-0X4f304N4U4!0X4n4|4T444 4w524Y4I4_4E574(593^0X4L5c4.3?4:4R5i4@5k4_4W5n4O4_4$5s4~4:4,5w544P0k4=5A4)3-0k4{4h535G3^0k515K584^5N563g1G2~1x2/2Y0O2$3u0C1 2y0)1Q1F2}0h2 5V4F055(0*5:5j010v0 3k3M5L2h0e3c5 5R3H0C0 0r0-0(0(1g645d1:0~040Q3T0d6l0d601:5|040*0$6e5`623z6u5o2i0m0 0N0N2@2I6D6y3u6h0j6I3W0D6h0A0h0(6t5=65016h0b3M6n6V0c0 0J3x0h0x0s6M3}6X6Z6o3H0 131Q2b0L6-4b6h0u6j4M6m716!6f0`6O6?6R6T326V0y0 0G6{376%6)6+6:7b0 0n7k743v7h1,7j70726l6;0176046Q6S7f1:7c047e6U7p6$7A0x6^0c6`4F735`7F7n7Q7x7K6@6(7O3T06717x6q6s7D0`6w6n7I5`0$6B046D0A2Z6H7/6z6K7+7y6P787~6}6 4|7v7w6V6q0z793g7R6z7z7B8b3r7x7F7H7a7J6?7M7Z7P308d3u0y6w0z1w7V8867040%1g0h820 844h86727(0 2O0L6+0c7o5`0c0D6?2Z8G046L7{3u8f818#3W8k7~7K6(7s6,8)6.0 0u6k868M048O8Q8S6z8U8W8:8m5`7}8;4b8%7C962h8+9a3l7r6*925V6V6}8~8u0 0#9l3W0A2e042f0f020P0L1n019p3}7F9o8z7J8V7A8X9d0`95938e80999N9m7G8,8o7N8r9i7p9k4M064}3}6q5~9K017-8,8B0Z2k8Y8I4p7%880 7*9+9-9+7;6C6E0c6G0N8Y8!9R6N9P8h2U7x838^7v7x98aa5_6z9ca7446?0y150+9B4b7Tas2h0v8B8D2+7#9^7p7)0hai7x9}am4k0$0 1v0L0N0J0z0*a57~ah8Y6~ae8L9_8{0+8}9F5`aV9+al9Y8Taoaq9X3r8t8*8w8y8s7(ay8EaB6m8`9{aJ61639~7=7@7_a49+9Ma-9O779Qbc6J8?9?3D8K8`8|0s8Ra(8 9H7^9h8i9j0 a6bga8beaG7l9T9+7Xap2xa;abbw048@9#aC5`aEbC7paIbz44aL041q0q9;babxaUa98Y6Ybq3PaM1,2x7!b$bMbj10bl6#0 2_0x0J0h0U0x0N160.6cbpa`bD7Uc78n0469c46db=bybvcb6R1q2lbJajbh04b+caa)b)a+7d9U7AbHarb=bN858_6Va*b27EcwbFa/bIavcI04c98c7Wb{0yb}b c1c36bcf4|7$a a!b1bV4bbUci8TbX0*b!1,aT9+cGc*2had7uafa!8acN0`8vcTcna?3}c^c-akcJcH6=bY7^aPaR8FcgaXc|8Kd54k0 cYc5d001aub,bA7A8(dbdsdac_9ecya:aYb_cjb/cmdrdtcs8 do6adqcvbEdy8-7ibubkdl877pd7bK7pa,d8b-dDcMdu9C7mdr7Kdpc!dBd1dAd)4U9V8qdFcEaD8Na$bod:b.clb;cDc}e0bY0/dhdy6hb@c$dYbme2c6cR8A0 azed5K0E5@5/5Weu0E5Z1x0L5#ez2!2W1~202Y0U1+ew5Z1Dco3W2O0m0N0$0U0v0h0N0t0k0 1p1r1t1v0db@1G3h1E0w2b0:0?0d0m0S255)6net6r0hc;dhe`0b0d1,e_5)eb6Q0Q0dbn1hep1xe`0d0c00aN0d2a0:0c0S0C1v0A0-2Ofi7M0Ae$0d2H0d0x1h0U0q0q6R0d2L0$1g2Q0z1gfe1-6Q0d0L0h392@1-fjfi17fy1h5?f4f9fcf4f0e:8.9gf35^fbesf40dfhc00Lap0U0|e$b:0Lf82l0J0y0W0S0h7H1N1I040Rfg0TfR0C0zfn6n0U0d0t2O0$0`0G0G0E2ueV0Ub~0C0N1!7^0h0E0 0V2k0d0KfW0s0|0sfF00fz1-gxfQ0;0t0-fldh0U3z2}2E2GgNgi2O2}0S6Q7Of`fK2KgL2+0dgrgGfYgN8xgP0CgR2@g4g63hex0+6a0A04.
.128013.9875.65038, w5e(8RM0pkDoic6S1vqd:xFy24fln-93m=)rhus;b/.àt_gLéaP+N7050y0h0X0$0r0G0R0e0s0G0$0R0R0M010X0r0n010406050R0Q0L0L0$0O0C040u0q0G0Q0~0q0H0e020$0L0n0S0e0k0h180O0x0Q0h0R050U1517191b130n041z1G051J0U1J1L1G130y0r0w0?0^0`0|0P0r0Z0P0G1Z0P0X11050.0T0G0h1U0_0{011Y1!1$1!0X1,1.1*0X0T0q0y1b1+0O1H0X0P0?1e0R0n0$0H0|0D011:1W010F0:0h0H1m0h1*2b2d2i1=2l1.2o0L2q040a0e0%0O0q0n0q0R0r1h1j0,290O0O0h0s2L1z2s0H1H0U272X0X2524260y2u0|1$0H2n2I1*1R1T0@1;2+0r2-0H211S1*0n2Q1H2V2X32142c1j2?2j2{0O180G110e0v2U3612352t381=3a3c3e0D3h2d3j2V2*013o0$3d040e0K3s2W133v3m0|3y3A0e0E3E3u363w3K3e0g3O3G3Q3I3x0q3b3z3e0t3V3k371V3n3!3p3B0*3)3H3,3J3.3$3B0j3=3X3@3Z3#3L0J3}3l3 3S040v0m443+2@403/0v3g1A3i3W454d470v3r4i3t4k4c393_3A0v3D4q3F3*3R4v110v3N4z3P4l4u414E3U4H4s4C4L483(4O4B3Y4n3;4U3?4m4D483|4Z3~4#4R0v434)4J3-4R0D4a4/4t4;3/0D4h324P4W4$0D4p4~4V46514y544!4K4{4G594*5b3`0D4N5e4:3^4=4T5k4_5m4{4Y5p4Q4{4(5u504=4.5y564R0K4@5C4+3/0K4}4j555I3`0K535M5a4`5P583i1I301z2;2!0y2(3w0s212A0+1S1H2 0h315X4H055*0,5=5l010o113m3O5N2j0f3e615T3J0s110l0/0G0G1i665f1=10040z3V0e6n0e621=5~040,0F6g5|643B6w5q2k0L110Y0Y2_2K6F6A3w6j0i6K3Y0T6j0R0h0G6v5@67016j0d3O6p6X0H110w3z0h0Q0O6O3 6Z6#6q3J11151S2d0X6/4d6j0N6l4O6o736$6h0|6Q6^6T6V346X0q110V6}396)6+6-6=7d110M7m763x7j1.7l72746n6?0178046S6U7h1=7e047g6W7r6(7C0Q6`0H6|4H755|7H7p7S7z7M6_6*7Q3V06737z6s6u7F0|6y6p7K5|0F6D046F0R2#6J7;6B6M7-7A6R7a806 714~7x7y6X6s0r7b3i7T6B7B7D8d3t7z7H7J7c7L6^7O7#7R328f3w0q6y0r1y7X8a69040)1i0h8411864j88747*112Q0X6-0H7q5|0H0T6^2#8I046N7}3w8h838%3Y8m807M6*7u6.8+6:110N6m888O048Q8S8U6B8W8Y8=8o5|7 8?4d8)7E982j8-9c3n7t6,945X6X6 908w110(9n3Y0R2g042h0I020Z0X1p019r3 7H9q8B7L8X7C8Z9f0|97958g829b9P9o7I8.8q7P8t9k7r9m4O064 3 6s609M017/8.8D0%2m8!8K4r7)8a117,9-9/9-7?6E6G0H6I0Y8!8$9T6P9R8j2W7z858`7x7z9aac5{6B9ea9466^0q170-9D4d7Vau2j0o8D8F2-7%9`7r7+0hak7z9 ao4m0F111x0X0Y0w0r0,a780aj8!70ag8N9{8}0-8 9H5|aX9-an9!8Vaqas9Z3t8v8,8y8A8u7*aA8GaD6o8|9}aL6365a07@7_7{a69-9Oa/9Q799Sbe6L8^9^3F8M8|8~0O8Ta*919J7`9j8k9l11a8biaabgaI7n9V9-7Zar2za?adby048_9%aE5|aGbE7raKbB46aN041s0n9?bcbzaWab8!6!bs3RaO1.2z7$b(bObl12bn6%112{0Q0w0h0$0Q0Y180:6ebra|bF7Wc98p046bc66fb@bAbxcd6T1s2nbLalbj04b-cca+b+a-7f9W7CbJatb@bP878{6Xa,b47GcybHa;bKaxcK04cb8e7Yb}0qb c1c3c56dch4~7(b1a$b3bX4dbWck8VbZ0,b$1.aV9-cIc,2jaf7waha$8ccP0|8xcVcpa^3 c`c/amcLcJ6@b!7`aRaT8HciaZc~8Md74m11c!c7d201awb.bC7C8*dddudcc{9gcAa=a!b{clb;codtdvcu91dq6cdscxbGdA8/7kbwbmdn897rd9bM7ra.dab/dFcOdw9E7odt7Mdrc$dDd3dCd+4W9X8sdHcGaF8Pa(bqd=b:cnb?cFc e2b!0;djdA6jb_c(d!boe4c8cT8C11aBef5M0U5_5;5Yew0U5#1z0X5%eB2$2Y20222!0$1-ey5#1Fcq3Y2Q0L0Y0F0$0o0h0Y0P0K111r1t1v1x0eb_1I3jeZ0eaT0|bp0H0I2{2-1*eva%8Rbq0eer1ze{050$3w0Pc10,0O2,5~0e0P2Q0F0|03e=e@8G2h0~0X1.0|0%0h3#2`0X0efa110b0c1z0$2XeZ3j1G0p2d0=0^0e0L0#275+6pe{c=b%e{0dfv1/5^5+ed6S0z0ee=e a eufY0e0H00aP0e2c0=0H0#0s1x0R0/2Qf:7O0Re(062J0e0Q1j0$0n0n6T0e2N0F1i2S0r1if,1/6S0e0Xfr0L2_1/f;f:19g31jfX5`e=f1fYfUfJ8:9i13e{f0f*5`0ef/c20Xar0$0~e(b=fu2Q0H0w0q0C0#0h7J1P1K040!f.0Afr0s0rf^6pf4fdaH0|0V0V0U2weX0$c00s0Y1$7`0h0U110B2m0e0Wgr0O0~0Oga00g41/h0gl0?0P0/f?djfBf:2F2HgjfJ2Q2 0#6S7QgOgf2Mhe2-0eg`h9gthg8zhi0shk2_gYg!3jez0-6c0R04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)