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:,ag)LR1ikn9ND/àSé=vFmsuhb.84;y7ex6+2o-dt c0M(wr5_P3qplf050O0H0P0d0j0%0x0Q0R0%0d0x0x0t010P0j0$010406050x0y0w0w0d0W0F040r0M0%0y0|0M0l0Q020d0w0$0E0Q0h0H160W0#0y0H0x050p13151719110$041x1E051H0p1H1J1E110O0j0u0;0?0^0`0z0j0e0z0%1X0z0P0 050,0A0%0H1S0@0_011W1Y1!1Y0P1*1,1(0P0A0M0O191)0W1F0P0z0;1c0x0$0d0l0`0L011.1U010(0.0H0l1k0H1(292b2g1:2j1,2m0w2o040a0Q0Z0W0M0$0M0x0j1f1h0*270W0W0H0R2J1x2q0l1F0p252V0P2322240O2s0`1!0l2l2G1(1P1R0=1/2)0j2+0l1 1Q1(0$2O1F2T2V30122a1h2;2h2_0W160%0 0Q0i2S3410332r361:383a3c0L3f2b3h2T2(013m0d3b040Q0!3q2U113t3k0`3w3y0Q0D3C3s343u3I3c0X3M3E3O3G3v0M393x3c0J3T3i351T3l3Y3n3z0G3%3F3*3H3,3!3z0C3:3V3=3X3Z3J0m3{3j3}3Q040i0S423)2=3~3-0i3e1y3g3U434b450i3p4g3r4i4a373@3y0i3B4o3D3(3P4t0 0i3L4x3N4j4s3 4C3S4F4q4A4J463$4M4z3W4l3/4S3;4k4B463`4X3|4Z4P0i414%4H3+4P0L484-4r4/3-0L4f304N4U4!0L4n4|4T444 4w524Y4I4_4E574(593^0L4L5c4.3?4:4R5i4@5k4_4W5n4O4_4$5s4~4:4,5w544P0!4=5A4)3-0!4{4h535G3^0!515K584^5N563g1G2~1x2/2Y0O2$3u0R1 2y0)1Q1F2}0H2 5V4F055(0*5:5j010k0 3k3M5L2h0V3c5 5R3H0R0 0T0-0%0%1g645d1:0~040b3T0Q6l0Q601:5|040*0(6e5`623z6u5o2i0w0 0Y0Y2@2I6D6y3u6h0U6I3W0A6h0x0H0%6t5=65016h0c3M6n6V0l0 0u3x0H0y0W6M3}6X6Z6o3H0 131Q2b0P6-4b6h0f6j4M6m716!6f0`6O6?6R6T326V0M0 0B6{376%6)6+6:7b0 0t7k743v7h1,7j70726l6;0176046Q6S7f1:7c047e6U7p6$7A0y6^0l6`4F735`7F7n7Q7x7K6@6(7O3T06717x6q6s7D0`6w6n7I5`0(6B046D0x2Z6H7/6z6K7+7y6P787~6}6 4|7v7w6V6q0j793g7R6z7z7B8b3r7x7F7H7a7J6?7M7Z7P308d3u0M6w0j1w7V8867040n1g0H820 844h86727(0 2O0P6+0l7o5`0l0A6?2Z8G046L7{3u8f818#3W8k7~7K6(7s6,8)6.0 0f6k868M048O8Q8S6z8U8W8:8m5`7}8;4b8%7C962h8+9a3l7r6*925V6V6}8~8u0 0K9l3W0x2e042f0N020e0P1n019p3}7F9o8z7J8V7A8X9d0`95938e80999N9m7G8,8o7N8r9i7p9k4M064}3}6q5~9K017-8,8B0Z2k8Y8I4p7%880 7*9+9-9+7;6C6E0l6G0Y8Y8!9R6N9P8h2U7x838^7v7x98aa5_6z9ca7446?0M150+9B4b7Tas2h0k8B8D2+7#9^7p7)0Hai7x9}am4k0(0 1v0P0Y0u0j0*a57~ah8Y6~ae8L9_8{0+8}9F5`aV9+al9Y8Taoaq9X3r8t8*8w8y8s7(ay8EaB6m8`9{aJ61639~7=7@7_a49+9Ma-9O779Qbc6J8?9?3D8K8`8|0W8Ra(8 9H7^9h8i9j0 a6bga8beaG7l9T9+7Xap2xa;abbw048@9#aC5`aEbC7paIbz44aL041q0$9;babxaUa98Y6Ybq3PaM1,2x7!b$bMbj10bl6#0 2_0y0u0H0d0y0Y160.6cbpa`bD7Uc78n0469c46db=bybvcb6R1q2lbJajbh04b+caa)b)a+7d9U7AbHarb=bN858_6Va*b27EcwbFa/bIavcI04c98c7Wb{0Mb}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 azed5K0p5@5/5Weu0p5Z1x0P5#ez2!2W1~202Y0d1+ew5Z1Dco3W2O0w0Y0(0d0k0H0Y0z0!0 1p1r1t1v0Qb@1G3h1E0o2b0:0?0Q0w0s255)6net6r0Hc;dhe`0c0Q1,e_5)eb6Q0b0Qbn1hep1xe`0Q0l00aN0Q2a0:0l0s0R1v0x0-2Ofi7M0xe$0Q2H0Q0y1h0d0$0$6R0Q2L0(1g2Q0j1gfe1-6Q0Q0P0H392@1-fjfi17fy1h5?f4f9fcf4f0e:8.9gf35^fbesf40Qfhc00Pap0d0|e$b:0Pf82l0u0M0F0s0H7H1N1I040gfg0IfR0R0jfn6n0d0Q0z2O0(0`0B0B0p2ueV0db~0R0Y1!7^0H0p0 0v2k0Q0qfW0W0|0WfF00fz1-gxfQ0;0z0-fldh0d3z2}2E2GgNgi2O2}0s6Q7Of`fK2KgL2+0QgrgGfYgN8xgP0RgR2@g4g63hex0+6a0x04.
.65038.128013.9875:,Lkn9DàSvFsu8;y7e62-0Mwr5_pag)R1iN/é=mhb.4x+odt c(P3qlf050X0u0Y0F0K0)0o0Z0!0)0F0o0o0O010Y0K0E010406050o0p0P0P0F0B0s040l0W0)0p0~0W0h0Z020F0P0E0r0Z0I0u180B0(0p0u0o050M1517191b130E041z1G051J0M1J1L1G130X0K0m0?0^0`0|0Q0K0G0Q0)1Z0Q0Y11050.0R0)0u1U0_0{011Y1!1$1!0Y1,1.1*0Y0R0W0X1b1+0B1H0Y0Q0?1e0o0E0F0h0|0w011:1W010*0:0u0h1m0u1*2b2d2i1=2l1.2o0P2q040b0Z0$0B0W0E0W0o0K1h1j0,290B0B0u0!2L1z2s0h1H0M272X0Y2524260X2u0|1$0h2n2I1*1R1T0@1;2+0K2-0h211S1*0E2Q1H2V2X32142c1j2?2j2{0B180)110Z0J2U3612352t381=3a3c3e0w3h2d3j2V2*013o0F3d040Z0%3s2W133v3m0|3y3A0Z0T3E3u363w3K3e0C3O3G3Q3I3x0W3b3z3e0v3V3k371V3n3!3p3B0t3)3H3,3J3.3$3B0q3=3X3@3Z3#3L0i3}3l3 3S040J0y443+2@403/0J3g1A3i3W454d470J3r4i3t4k4c393_3A0J3D4q3F3*3R4v110J3N4z3P4l4u414E3U4H4s4C4L483(4O4B3Y4n3;4U3?4m4D483|4Z3~4#4R0J434)4J3-4R0w4a4/4t4;3/0w4h324P4W4$0w4p4~4V46514y544!4K4{4G594*5b3`0w4N5e4:3^4=4T5k4_5m4{4Y5p4Q4{4(5u504=4.5y564R0%4@5C4+3/0%4}4j555I3`0%535M5a4`5P583i1I301z2;2!0X2(3w0!212A0+1S1H2 0u315X4H055*0,5=5l010g113m3O5N2j0A3e615T3J0!110z0/0)0)1i665f1=10040d3V0Z6n0Z621=5~040,0*6g5|643B6w5q2k0P110D0D2_2K6F6A3w6j0#6K3Y0R6j0o0u0)6v5@67016j0e3O6p6X0h110m3z0u0p0B6O3 6Z6#6q3J11151S2d0Y6/4d6j0H6l4O6o736$6h0|6Q6^6T6V346X0W110S6}396)6+6-6=7d110O7m763x7j1.7l72746n6?0178046S6U7h1=7e047g6W7r6(7C0p6`0h6|4H755|7H7p7S7z7M6_6*7Q3V06737z6s6u7F0|6y6p7K5|0*6D046F0o2#6J7;6B6M7-7A6R7a806 714~7x7y6X6s0K7b3i7T6B7B7D8d3t7z7H7J7c7L6^7O7#7R328f3w0W6y0K1y7X8a69040L1i0u8411864j88747*112Q0Y6-0h7q5|0h0R6^2#8I046N7}3w8h838%3Y8m807M6*7u6.8+6:110H6m888O048Q8S8U6B8W8Y8=8o5|7 8?4d8)7E982j8-9c3n7t6,945X6X6 908w110V9n3Y0o2g042h0x020G0Y1p019r3 7H9q8B7L8X7C8Z9f0|97958g829b9P9o7I8.8q7P8t9k7r9m4O064 3 6s609M017/8.8D0$2m8!8K4r7)8a117,9-9/9-7?6E6G0h6I0D8!8$9T6P9R8j2W7z858`7x7z9aac5{6B9ea9466^0W170-9D4d7Vau2j0g8D8F2-7%9`7r7+0uak7z9 ao4m0*111x0Y0D0m0K0,a780aj8!70ag8N9{8}0-8 9H5|aX9-an9!8Vaqas9Z3t8v8,8y8A8u7*aA8GaD6o8|9}aL6365a07@7_7{a69-9Oa/9Q799Sbe6L8^9^3F8M8|8~0B8Ta*919J7`9j8k9l11a8biaabgaI7n9V9-7Zar2za?adby048_9%aE5|aGbE7raKbB46aN041s0E9?bcbzaWab8!6!bs3RaO1.2z7$b(bObl12bn6%112{0p0m0u0F0p0D180:6ebra|bF7Wc98p046bc66fb@bAbxcd6T1s2nbLalbj04b-cca+b+a-7f9W7CbJatb@bP878{6Xa,b47GcybHa;bKaxcK04cb8e7Yb}0Wb 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!boe4c8cT8C11aBef5M0M5_5;5Yew0M5#1z0Y5%eB2$2Y20222!0F1-ey5#1Fcq3Y2Q0P0D0*0F0g0u0D0Q0%111r1t1v1x0Zb_1I3jeZ0ZaT0|bp0h0x2{2-1*eva%8Rbq0Zer1ze{050F3w0Qc10,0B2,5~0Z0Q2Q0*0|03e=e@8G2h0~0Y1.0|0$0u3#2`0Y0Zfa110c0a1z0F2XeZ3j1G0j2d0=0^0Z0P0N275+6pe{c=b%e{0efv1/5^5+ed6S0d0Ze=e a eufY0Z0h00aP0Z2c0=0h0N0!1x0o0/2Qf:7O0oe(062J0Z0p1j0F0E0E6T0Z2N0*1i2S0K1if,1/6S0Z0Yfr0P2_1/f;f:19g31jfX5`e=f1fYfUfJ8:9i13e{f0f*5`0Zf/c20Yar0F0~e(b=fu2Q0h0m0W0s0N0u7J1P1K040ff.0Ufr0!0Kf^6pf4fdaH0|0S0S0M2weX0Fc00!0D1$7`0u0M110n2m0Z0kgr0B0~0Bga00g41/h0gl0?0Q0/f?djfBf:2F2HgjfJ2Q2 0N6S7QgOgf2Mhe2-0Zg`h9gthg8zhi0!hk2_gYg!3jez0-6c0o04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)