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
.128013bàuS-,3_4l.(Mwnx/R8p)aPké0L;:FhorsD1v7c25qm6gydi9eNft =+050V0Y0#0w0W0k0I0$0N0k0w0I0I0%010#0W0u010406050I0d0R0R0w0H0U040e0G0k0d0|0G0p0$020w0R0u0C0$0s0Y160H0Q0d0Y0I050r13151719110u041x1E051H0r1H1J1E110V0W0L0;0?0^0`0F0W0T0F0k1X0F0#0 050,0b0k0Y1S0@0_011W1Y1!1Y0#1*1,1(0#0b0G0V191)0H1F0#0F0;1c0I0u0w0p0`0O011.1U010!0.0Y0p1k0Y1(292b2g1:2j1,2m0R2o040a0$0x0H0G0u0G0I0W1f1h0*270H0H0Y0N2J1x2q0p1F0r252V0#2322240V2s0`1!0p2l2G1(1P1R0=1/2)0W2+0p1 1Q1(0u2O1F2T2V30122a1h2;2h2_0H160k0 0$0K2S3410332r361:383a3c0O3f2b3h2T2(013m0w3b040$0h3q2U113t3k0`3w3y0$0j3C3s343u3I3c0P3M3E3O3G3v0G393x3c0S3T3i351T3l3Y3n3z0M3%3F3*3H3,3!3z0t3:3V3=3X3Z3J0X3{3j3}3Q040K0A423)2=3~3-0K3e1y3g3U434b450K3p4g3r4i4a373@3y0K3B4o3D3(3P4t0 0K3L4x3N4j4s3 4C3S4F4q4A4J463$4M4z3W4l3/4S3;4k4B463`4X3|4Z4P0K414%4H3+4P0O484-4r4/3-0O4f304N4U4!0O4n4|4T444 4w524Y4I4_4E574(593^0O4L5c4.3?4:4R5i4@5k4_4W5n4O4_4$5s4~4:4,5w544P0h4=5A4)3-0h4{4h535G3^0h515K584^5N563g1G2~1x2/2Y0V2$3u0N1 2y0)1Q1F2}0Y2 5V4F055(0*5:5j010y0 3k3M5L2h0o3c5 5R3H0N0 0n0-0k0k1g645d1:0~040D3T0$6l0$601:5|040*0!6e5`623z6u5o2i0R0 0i0i2@2I6D6y3u6h0m6I3W0b6h0I0Y0k6t5=65016h0g3M6n6V0p0 0L3x0Y0d0H6M3}6X6Z6o3H0 131Q2b0#6-4b6h0v6j4M6m716!6f0`6O6?6R6T326V0G0 0l6{376%6)6+6:7b0 0%7k743v7h1,7j70726l6;0176046Q6S7f1:7c047e6U7p6$7A0d6^0p6`4F735`7F7n7Q7x7K6@6(7O3T06717x6q6s7D0`6w6n7I5`0!6B046D0I2Z6H7/6z6K7+7y6P787~6}6 4|7v7w6V6q0W793g7R6z7z7B8b3r7x7F7H7a7J6?7M7Z7P308d3u0G6w0W1w7V8867040Z1g0Y820 844h86727(0 2O0#6+0p7o5`0p0b6?2Z8G046L7{3u8f818#3W8k7~7K6(7s6,8)6.0 0v6k868M048O8Q8S6z8U8W8:8m5`7}8;4b8%7C962h8+9a3l7r6*925V6V6}8~8u0 0(9l3W0I2e042f0f020T0#1n019p3}7F9o8z7J8V7A8X9d0`95938e80999N9m7G8,8o7N8r9i7p9k4M064}3}6q5~9K017-8,8B0x2k8Y8I4p7%880 7*9+9-9+7;6C6E0p6G0i8Y8!9R6N9P8h2U7x838^7v7x98aa5_6z9ca7446?0G150+9B4b7Tas2h0y8B8D2+7#9^7p7)0Yai7x9}am4k0!0 1v0#0i0L0W0*a57~ah8Y6~ae8L9_8{0+8}9F5`aV9+al9Y8Taoaq9X3r8t8*8w8y8s7(ay8EaB6m8`9{aJ61639~7=7@7_a49+9Ma-9O779Qbc6J8?9?3D8K8`8|0H8Ra(8 9H7^9h8i9j0 a6bga8beaG7l9T9+7Xap2xa;abbw048@9#aC5`aEbC7paIbz44aL041q0u9;babxaUa98Y6Ybq3PaM1,2x7!b$bMbj10bl6#0 2_0d0L0Y0w0d0i160.6cbpa`bD7Uc78n0469c46db=bybvcb6R1q2lbJajbh04b+caa)b)a+7d9U7AbHarb=bN858_6Va*b27EcwbFa/bIavcI04c98c7Wb{0Gb}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 azed5K0r5@5/5Weu0r5Z1x0#5#ez2!2W1~202Y0w1+ew5Z1Dco3W2O0R0i0!0w0y0Y0i0F0h0 1p1r1t1v0$b@1G3h1E0J2b0:0?0$0R0z255)6net6r0Yc;dhe`0g0$1,e_5)eb6Q0D0$bn1hep1xe`0$0p00aN0$2a0:0p0z0N1v0I0-2Ofi7M0Ie$0$2H0$0d1h0w0u0u6R0$2L0!1g2Q0W1gfe1-6Q0$0#0Y392@1-fjfi17fy1h5?f4f9fcf4f0e:8.9gf35^fbesf40$fhc00#ap0w0|e$b:0#f82l0L0G0U0z0Y7H1N1I040Bfg0qfR0N0Wfn6n0w0$0F2O0!0`0l0l0r2ueV0wb~0N0i1!7^0Y0r0 0E2k0$0cfW0H0|0HfF00fz1-gxfQ0;0F0-fldh0w3z2}2E2GgNgi2O2}0z6Q7Of`fK2KgL2+0$grgGfYgN8xgP0NgR2@g4g63hex0+6a0I04.
.9875.65038.128013à34.nx/R8p)L0FhDv7c256g9Nf=buS-,_l(MwaPké;:ors1qmydi te+050#0)0(0O0$0K0W0%0v0K0O0W0W0D010(0$0m010406050W0F0Z0Z0O0V0!040G0U0K0F0~0U0h0%020O0Z0m0S0%0k0)180V0Y0F0)0W050j1517191b130m041z1G051J0j1J1L1G130#0$0t0?0^0`0|0r0$0z0r0K1Z0r0(11050.0E0K0)1U0_0{011Y1!1$1!0(1,1.1*0(0E0U0#1b1+0V1H0(0r0?1e0W0m0O0h0|0w011:1W010C0:0)0h1m0)1*2b2d2i1=2l1.2o0Z2q040c0%0P0V0U0m0U0W0$1h1j0,290V0V0)0v2L1z2s0h1H0j272X0(2524260#2u0|1$0h2n2I1*1R1T0@1;2+0$2-0h211S1*0m2Q1H2V2X32142c1j2?2j2{0V180K110%0X2U3612352t381=3a3c3e0w3h2d3j2V2*013o0O3d040%0e3s2W133v3m0|3y3A0%0f3E3u363w3K3e0x3O3G3Q3I3x0U3b3z3e0y3V3k371V3n3!3p3B0u3)3H3,3J3.3$3B0l3=3X3@3Z3#3L0A3}3l3 3S040X0p443+2@403/0X3g1A3i3W454d470X3r4i3t4k4c393_3A0X3D4q3F3*3R4v110X3N4z3P4l4u414E3U4H4s4C4L483(4O4B3Y4n3;4U3?4m4D483|4Z3~4#4R0X434)4J3-4R0w4a4/4t4;3/0w4h324P4W4$0w4p4~4V46514y544!4K4{4G594*5b3`0w4N5e4:3^4=4T5k4_5m4{4Y5p4Q4{4(5u504=4.5y564R0e4@5C4+3/0e4}4j555I3`0e535M5a4`5P583i1I301z2;2!0#2(3w0v212A0+1S1H2 0)315X4H055*0,5=5l010Q113m3O5N2j0N3e615T3J0v110M0/0K0K1i665f1=10040T3V0%6n0%621=5~040,0C6g5|643B6w5q2k0Z110J0J2_2K6F6A3w6j0L6K3Y0E6j0W0)0K6v5@67016j0I3O6p6X0h110t3z0)0F0V6O3 6Z6#6q3J11151S2d0(6/4d6j0n6l4O6o736$6h0|6Q6^6T6V346X0U110g6}396)6+6-6=7d110D7m763x7j1.7l72746n6?0178046S6U7h1=7e047g6W7r6(7C0F6`0h6|4H755|7H7p7S7z7M6_6*7Q3V06737z6s6u7F0|6y6p7K5|0C6D046F0W2#6J7;6B6M7-7A6R7a806 714~7x7y6X6s0$7b3i7T6B7B7D8d3t7z7H7J7c7L6^7O7#7R328f3w0U6y0$1y7X8a69040B1i0)8411864j88747*112Q0(6-0h7q5|0h0E6^2#8I046N7}3w8h838%3Y8m807M6*7u6.8+6:110n6m888O048Q8S8U6B8W8Y8=8o5|7 8?4d8)7E982j8-9c3n7t6,945X6X6 908w110*9n3Y0W2g042h0H020z0(1p019r3 7H9q8B7L8X7C8Z9f0|97958g829b9P9o7I8.8q7P8t9k7r9m4O064 3 6s609M017/8.8D0P2m8!8K4r7)8a117,9-9/9-7?6E6G0h6I0J8!8$9T6P9R8j2W7z858`7x7z9aac5{6B9ea9466^0U170-9D4d7Vau2j0Q8D8F2-7%9`7r7+0)ak7z9 ao4m0C111x0(0J0t0$0,a780aj8!70ag8N9{8}0-8 9H5|aX9-an9!8Vaqas9Z3t8v8,8y8A8u7*aA8GaD6o8|9}aL6365a07@7_7{a69-9Oa/9Q799Sbe6L8^9^3F8M8|8~0V8Ta*919J7`9j8k9l11a8biaabgaI7n9V9-7Zar2za?adby048_9%aE5|aGbE7raKbB46aN041s0m9?bcbzaWab8!6!bs3RaO1.2z7$b(bObl12bn6%112{0F0t0)0O0F0J180:6ebra|bF7Wc98p046bc66fb@bAbxcd6T1s2nbLalbj04b-cca+b+a-7f9W7CbJatb@bP878{6Xa,b47GcybHa;bKaxcK04cb8e7Yb}0Ub 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!boe4c8cT8C11aBef5M0j5_5;5Yew0j5#1z0(5%eB2$2Y20222!0O1-ey5#1Fcq3Y2Q0Z0J0C0O0Q0)0J0r0e111r1t1v1x0%b_1I3jeZ0%aT0|bp0h0H2{2-1*eva%8Rbq0%er1ze{050O3w0rc10,0V2,5~0%0r2Q0C0|03e=e@8G2h0~0(1.0|0P0)3#2`0(0%fa110a0b1z0O2XeZ3j1G0s2d0=0^0%0Z0R275+6pe{c=b%e{0Ifv1/5^5+ed6S0T0%e=e a eufY0%0h00aP0%2c0=0h0R0v1x0W0/2Qf:7O0We(062J0%0F1j0O0m0m6T0%2N0C1i2S0$1if,1/6S0%0(fr0Z2_1/f;f:19g31jfX5`e=f1fYfUfJ8:9i13e{f0f*5`0%f/c20(ar0O0~e(b=fu2Q0h0t0U0!0R0)7J1P1K040of.0ifr0v0$f^6pf4fdaH0|0g0g0j2weX0Oc00v0J1$7`0)0j110q2m0%0dgr0V0~0Vga00g41/h0gl0?0r0/f?djfBf:2F2HgjfJ2Q2 0R6S7QgOgf2Mhe2-0%g`h9gthg8zhi0vhk2_gYg!3jez0-6c0W04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)