Classe File à l'aide d'une liste chainée
Le cadre
On cherche à modéliser la structure de File déjà étudiée avec une liste simplement chainée. On considère alors une classe Maillon où l'élément pointé est à droite (on aurait pu aussi choisir à gauche).
🐍 Script Python
class Maillon:
def __init__(self, élément):
self.élément = élément
self.droite = None
class File:
def __init__(self): # Déjà disponible.
self.tête = None
self.queue = None
def est_vide(self):
... # À compléter
def empile(self, élément):
... # À compléter
def dépile(self):
... # À compléter
On souhaite compléter l'interface de la classe File qui possède deux attributs tête et queue qui seront soit None, soit une instance de Maillon.
- Une file vide sera modélisée par ses deux attributs valant
None - Sinon, une file sera modélisée par ses attributs
tête: une instance deMaillonportant l'élémentde la file prêt à être défilé et qui pointe àdroitevers le prochain (s'il existe).queue: : une instance deMaillonportant l'élémentde la file qui vient d'être enfilé et qui pointe àdroitevers le vide.
Exercice
Coder une suite de la classe File en utilisant les docstring suivantes :
- méthode
est_vide:"Renvoie un booléen" - méthode
enfile:"Enfile un `élément` passé en paramètre à la queue" - méthode
défile:"Défile et renvoie l'`élément` en tête, sinon provoque une erreur"
On utilisera
raise ValueError("File vide !") pour provoquer une erreur volontaire si besoin.
On vous offre une méthode spéciale
__str__ afin d'afficher l'état d'une file.
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
.128013/.r;nbylaeêu)dVM63m(P02è-U,59fq!78 N_o=pcwgv4F1`kRéhtsSàCDi:E050o0k0#0j0+0i0$0J0P0i0j0$0$0N010#0+0O010406050$0m0t0t0j0d0h040%0M0i0m110M0f0J020j0t0O0e0J0Y0k1b0d0F0m0k0$050b181a1c1e160O04051J1C1M0b1J160o0+0S0_0{0}0 0!0+0R0!0i1!0!0#14050;0g0i0k1V0|0~011Z1#1%1#0#1-1/1+0#0d1K0#0!1;1X010E0?0k0f1p0k010_1h0$0O0j0f0 0x1+2h2j251?281/2b0t2d040a0J0v0d0M0O0M0$0+1k1m0/2f0d0d0k0P2H1C2o0f1K0b232T2022211,0o2q0 1%0f2a2E1+1S1U0`1=2%0+2)0f0M2-1+0O2M1K2R2T2~172i1m2/262@0d1b0i140J0V2Q3215312p341?36383a0x3d2j3f2R2$013k0j39040J0s3o2S163r3i0 3u3w0J0T3A3q323s3G3a0C3K3C3M3E3t0M373v3a0r3R3g331W3j3W3l3x0H3#3D3(3F3*3Y3x0I3.3T3:3V3X3H0D3_3h3{3O040V0w403%2:3|3+0V3c1D3e3S4149430V3n4e3p4g48353=3w0V3z4m3B3$3N4r140V3J4v3L4h4q3}4A3Q4D4o4y4H443!4K4x3U4j3-4Q3/4i4z443^4V3`4X4N0V3 4#4F3)4N0x464+4p4-3+0x4d2~4L4S4Y0x4l4`4R424}4u301P2|1C2-2W0o222#3U0P2^2w0.1T1K2{0k2}3e3K055f0/5n4,0 0X140/0E5p4W260Q3a5A4$350E141A0#0L0S0+0/5F5u0113040u5Q4=0 0g5T0$0k0i5z4D51495T0n0,3R0J5:0J5*260$2m04011u0f0S0M0+1:0m1m0g0M1h0Z2a015/5;5?1?5w042M0#0m0d0f3K5=5B1?5Z145#5%5W3s0M140c6t4S140#0l0#0k6l6c0 0M5D040+1B4D6m5G6d0P140K1l6E4K4{3{6e5y6y3{6J5=5)6n3F5I042a2s6V306*5S145V6)6P5Y5!5$5(6;6`6?040B6F6=0f140Z0i0Z2v0f0#6#5+145-6a5:6G015^14010-0f6/0J620J0W787a2a0#0W0J2i0}0Z0J2a7B1c1p0y202d7i6O5R76042@0m0S0k0j0m0L1b0?0i1l74706v040N7%7P140q0=0i7#6k6_5R5T6^6 7-047w7b7d7@5X710n7N7k6e0+6~3e7O826p046r893p7k7)6x813N5J0$5L5N5P8l3U7_7h4K5;8x8b3s8d8f7e268j8D3j6A6C6:8a8i147+6N7k7Q7S7U7W7Y7:7=856=6e5$5#8G0 5T5.8w8y7j6=8B6}8%018F8s42141y0k1z8;8?7{827Q0o2B2G8K3p8z3U7)8O2~978^7R0M7T7V7X7Z7;7$8+8-708/6s8@498~5o758_1z8|8P6=997,90148S9h8V7!9l4`6X496Z0k8g2S7k6%8;7q5x0Z6/8;7_8;9p9P5t825,8*4`8x7k7m5`0*9W297F0#0J2M5}5 1:0i007v797 7A7G6B6D0B0J2F2@1m2{0M5~8`7s2)7F2L8{0d699m9c9M14889C8A6|9q8 6u6w9T8n8p5O959Q6=8u9*4f8,9n5R6e0d0=8$9z702)140p3v1z0-2L3W9Y6@8;9.010U9=8q1:0Galav8t7g8Y708!0@aC9%3s8)7N9,9v7}a07yar988Nb23{9#8}ax9r358I6Db8048ka.9d7~b1ama}9oat9$8Mbfay04a4a^an8Eb4aP5Rb7ba1?9t8ha~bubebg9uaQ5x93bdbl6b8Zap9$bw6obobIbsbHbz826Iap6M9b866R046T2)aZ04aG4naI8y7kbBbh9sb9b`bb048`9yb)9Abyc2a=b+b-a^06b?86146g6i7?c57|bj7c3#0b5r5m1N570b591C0#5bct2Z2U0j1.cocr5j1Ia_3U2M0t0L0E0j0X0k0L0!0s141u1w8`0^b;9Q1P3f1J0)5g2f1q1/801Q5i2.3{1^1$1(1*cF3{6/2u2w2y0%0P0d129@0v0h239J5o5l9%2 5ocnc?ao043i8;9SbC3Fb+7/9IcgbK7^14cW4E826%6bdh7l0o7n01a-4f9-dx3x5;0)3(1:dk9k1m0j7U0P0J0j1|c~0g1jcV473s0$dD8x0z0Jcj9@0,0J0{0J0S3vaj7B3W0#677H0dd*1:9j8X4;dXdZ5;d#925 6D0Jd)1/0Jd{1ld:2=d=a60?7F8o0J0(0Je294dW3UdY3a5;dzdAb=bQa=5x9Odf5Edv0E0t140L0L2=2GeFb/7`dn8cbWdv5T73b!8ma 7xckeP7gdqcaaIb^eOb}bDb|eMeTd%b5b{7*e.b~e-bPaJeN6q8:dvbEaDbL04elbOchb#c48L8Zc76U3Re!e^3s9Nbp6=dge(0 eCeE0L8o0deJeX5U9!e%e+a/048v9+e#bR6f0:cfe;3j0g6q20eKfse`aufu3{e}dbe=b0eWfi83faccdd3(ez3x9Tb+a(1/b/eZ9Req7jdvep5`dzen3{f:8x0A111%5#d*0j2qdI8Wd44ndCf-0Jesa;aKexff70fhfN49fk04eFeH5L0LfJdvb_gf269)a|evbAftbF7(e*gx7|bZf3awe:eS3U0Xf8b.e@bU6{fLgc5RfP8Q9w8{bvbq9af6c66Sf96Wbmgaf0eydvgegA906,5K5MaBgnfUgpg-a`eYgtfceo5_5{2a5~60af0J646668g|gM01aLfC6jfEgN8ee{fUgRbG8Jhf8=6J6LhngIg!gK9Kg%82fef!6(fU9U6-7q29g?gqbVgOb/eRgD6zeU7 b/fxaHfz70a$7p7r7t9 eV7z7H7D7Faa7I0t7K2Met3Bcba~9F8Ue9dm96gWhn7QdJd|fU9Zdv7Qe?h a:gLfXaqgGb6gwe~gQgzic9D6-8og;8ri45UhReub?g}iahJe|iefQ8Hbthmi9e/gXh_h;9f8T9ig2h^h/hTg(8#a^7ka{gLhwasishjiugSb 9xiNc3bri1bMe3gVi!iB2Sha8RiE9Gh@h9e$iThH6HiVa~c0i)gygFhM9dh=iGdlfaiRgHgbhz9T6,0o9;f)fqeLg_3Ug^ifg`fweZh:hUg 9:7r0:9^h19{d*9~d%a21mbua6a8eaabad1zaf1:0kai6ih.15jog(i8j049jjivi_i#hBazijiZ70aFh9j66YcdaNi}7P2waT1i0kaW2B0dhGjhf@g f(1:a*0Ja,hQi=fAiMf*j)guigi3gYidi kce_hhfMj{e/bJkjb~gCi^8=i`e kbioipi?khgPf4jYkp7QkoiCi~i+f#8.ibjWkqkAkmiwkDjkb3kMkQ9df1c9ipk9fdbShnjVbqklkT4ibcj.b#hpb(kffdgJj$dob:k88,kw8CitkSkK7Qi|hn9Biz26hsb,g#fykXfXcehel4iwkt4wcm5g2Td658cD580:7:0$04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)