Aller au contenu

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 de Maillon portant l'élément de la file prêt à être défilé et qui pointe à droite vers le prochain (s'il existe).
    • queue : : une instance de Maillon portant l'élément de la file qui vient d'être enfilé et qui pointe à droite vers 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 !!!

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
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
Évaluations restantes : /
.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.