Taille d'une file à l'aide d'une liste chainée
Le cadre
On a modélisé la structure de File avec une liste simplement chainée. On a considéré 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: # Entièrement disponible
def __init__(self):
self.tête = None
self.queue = None
def est_vide(self):
...
def enfile(self, élément):
...
def défile(self):
...
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 méthode taille de la classe File qui renvoie le nombre d'éléments de l'instance de la file.
On fera un parcours de la file à l'aide des maillons.
Il sera interdit de défiler dans cet exercice !!!
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.85925/f.Tq78r;nb N_o|=ylaeêpcwgu)vdQ46F1`3kRméhtsP(S0+2Ci:050G0x0T0w0$0v0U0o0A0v0w0U0U0t010T0$0z010406050U0D0Q0Q0w0k0u040X0r0v0D0{0r0m0o020w0Q0z0l0o0P0x150k0h0D0x0U050d12141618100z04051D1w1G0d1D100G0$0F0:0=0@0_0S0$0C0S0v1U0S0T0~050+0n0v0x1P0?0^011T1V1X1V0T1%1)1#0T0k1E0T0S1+1R010e0-0x0m1j0x010:1b0U0z0w0m0_0!1#2b2d1 1-221)250Q27040a0o0V0k0r0z0r0U0$1e1g0)290k0k0x0A2B1w2i0m1E0d1}2N1`1|1{1$0G2k0_1X0m242y1#1M1O0;1,2X0$2Z0m0r2%1#0z2G1E2L2N2^112c1g2)202.0k150v0~0L2K2|0 2{2j2~1-30320~0!362d382L2W013d0w33040N3h2M103k3b0_3n3p0I3s3j2|3l3y0~0c3B3u3D3w3m0r313o0~0J3I392}1Q3c3N3e040i3S3v3V3x3X3P040j3B1H2?1w2%2Q0G1|2V3L0A2/2q0(1N1E2=0x2@373-3`0)423a3%010O0~0)0e3-3$2*010B0~0o4f3K490m0e0~0+0-1)4m484h0}040W4v3U4h0n4y0U0x0v4e1x434g204y0E0%3I0o4S4l4M1-0U2g04011o0m0F0r0$1*1)0o2.0Q0n2G0o0G000R0v0R2p0m0T0/2D0=0o2m274R4T3T3E0~3`0D0k2d0T3B4U4n4h0r0~0t5d553L4E0~4G4I4B3l5h040f5r3L0m4r0y0T0x534S5l4o0~0m5k4V0_5t5j4K3i5e4w200Q0$0~0Y5D5Q4C204b040B1T4u5O2M5Y5604585a4{5J5f200r4j040$1v5*045,3L5^5H0r5c5}5 490O0A0~0p1f5C5}5F4x0~4Q5}064T6l664h5y5.0r595b5=5R1-5M6u5Z3c576r5:642`5K015t5v6e6G6p0G2v2A6d2^6k6m5E6L5H6y5s0~0Z5N2^6n5S5U04356j6l6f5!0~2G0T595I656.6A046@6R1w45413.700d3;1w0T3?752T2O0w1(723;1C476z0_2G0Q0q0e0w0O0x0q0S0N0~1o1q1s1u0o6i2`1J382%3l1/1W1Y1!7g3l512o2q0#0w0)0w0D7y0o4+6 4;4*0w0o0Q0R1}3{0o2b0R0A0$3o1*0M0q0q0U1`7;0M3-407g2_436 7J3L5#3b5w495_4l6K5?3c69040K23846g047z376S6U895L0~0f8p3I8k6%1-5#4d8f20868x2l0Q0~7;7?0k7;8A0_4y4A886v0_5n045p4J6F8m014O8i3i8s6-6V040w0e220A0S0w0C6Q378t8n046#8/6_0_4X0~010W0g5A0x0E0o0b015X8!8U6p5/6t6^6G6x9b8U8P8R8I6H8o9i6p0T8 95546G5#5%8e9e8N3m6B6s5;9v7h6H5_5{6X605_2.6E8@9r8b6b2Z9i4y8X3t6T6T8^9x8$8(0$8*8,8.5P9W5t6!9G498`4Z0o0s0o949B6Y040Z9,6o0n5o1`9Q0~8L8T9w986C9aa39C4O9p9V8#999A6$9)5i9{2 9y6D9i6I9l4c6O5Bab8:4a6:0*6?5dau6p8%8)8+8-aj6w6ZaG8_4Y289;0b0o0W0H1t1t0E9?6}0d7 712N7e3:0*0,0.04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)