Aller au contenu

Taille d'une pile à l'aide d'une liste chainée

Le cadre

On a modélisé la structure de Pile avec une liste simplement chainée. On a considéré une classe Maillon où l'élément pointé est à gauche (on aurait pu aussi choisir à droite).

🐍 Script Python
class Maillon:
    def __init__(self, élément):
        self.élément = élément
        self.gauche = None


class Pile:  # Entièrement disponible
    def __init__(self):
        self.sommet = None

    def est_vide(self):
        ...

    def empile(self, élément):
        ...

    def dépile(self):
        ...

On souhaite compléter l'interface de la classe Pile qui possède un unique attribut sommet qui sera soit None, soit une instance de Maillon.

  • Une pile vide sera modélisée par son attribut sommet qui vaut None
  • Sinon, une pile sera modélisée par son attribut sommet : une instance de Maillon portant l'élément au sommet de la pile et qui pointe à gauche vers le reste de la pile.

Exercice

Coder une méthode taille de la classe Pile qui renvoie le nombre d'éléments de l'instance de la pile.

👍 On fera un parcours de la pile à l'aide des maillons.

⚠ Il sera interdit de dépiler 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.85965/f.q78r;nb N_o|=ylaepcwgu)vd461`3kRméhtsP(S0+2Ci:050E0w0P0v0Y0u0Q0n0y0u0v0Q0Q0s010P0Y0x010406050Q0B0M0M0v0j0t040T0q0u0B0@0q0l0n020v0M0x0k0n0L0w110j0g0B0w0Q050d0~1012140|0x04051z1s1C0d1z0|0E0Y0D0,0.0:0=0O0Y0A0O0u1Q0O0P0`050%0m0u0w1L0/0;011P1R1T1R0P1Z1#1X0P0j1A0P0O1%1N010e0)0w0l1f0w010,170Q0x0v0l0=0W1X27291{1)1~1#210M23040a0n0R0j0q0x0q0Q0Y1a1c0#250j0j0w0y2x1s2e0l1A0d1_2J1?1^1@1Y0E2g0=1T0l202u1X1I1K0-1(2T0Y2V0l0q2Z1X0x2C1A2H2J2;0}281c2#1|2*0j110u0`0H2G2^0{2@2f2`1)2|2~0`0W3229342H2S01390v2 040J3d2I0|3g370=3j3l0F3o3f2^3h3u0`0c3x3q3z3s3i0q2}3k0`0G3E352_1M383J3a040h3O3r3R3t3T3L040i3x1D2/1s2Z2M0E1^2R3H0y2+2m0!1J1A2.0w2:333)3?0#3~363Z010K0`0#0e3)3Y2$010z0`0n4b3G450l0e0`0%0)1#4i444d0_040S4r3Q4d0m4u0Q0w0u4a1t3 4c1|4u0C0Z3E0n4O4h4I1)0Q2c04011k0l0D0q0Y1$1#0n2*0M0m2C0n0E000N0u0N2l0l0P0+2z0.0n0x1 014N4P3P3A0`3?0B0j290P3x4Q4j4d0q0`0s5a523H4A0`4C4E4x3h5e040f5o3H0l5l0q100$504O5i4k0`0l5h4R0=5q5g4G3e5b4s1|0M0Y0`0U5A5N4y1|47040z1P4q5L2I5V530455574@5G5c1|0q4f040Y1r5%045)3H5=5E0q595`5|450K0y0`0o1b0w5t454u4M5`064P6h634d5v5+0q56585/5O1)5J6q5W38546n5-612?5H015q5s5`5C6k0`0A0v0B0y0O6a6f6i516C6l5F626H5;0`0V5K2;6j5P5R04316Q6S5:1)5Y2C0P566V6$6X6w046@330|0d413}3*710d3-1s0P3/762P2K0v1!733-1y436v0=2C0M0p0e0v0K0w0p0O0J0`1k1m1o1q0n6e2?1F342Z3h1+1S1U1W7h3h2i20220`0X0v0#6L7z0n4%704-4$0v0n0M0N1_3@0n270N0y0Y3k1$0I0p0p0Q1?7=0I3)3|7h2=3 707K3H5Y376b4d5?4h6G6T66040R1 854J0`7A6}6h6_5I0`0f8o3E6g6-6r0=5Y498f1)878x0=0e0M0`7=7@0j7=8A014u4w896.0=5k045m4F6B8O8K0`4L5U8k6T0`0v0e1~6N0v0A6P6^6C6t6W6C4T0`010r0n0b0n0S165y0P0C4 6,6R8l3i6x6o5.8;8V8:8.8V8Q8S8J6E8J6l0Q5x2l6A8j6R6%6/0`5!8e9a8t966m989o5M955~5@5_9d9x9E2*9B5(956567698J6d8Z9q956l8%8)0O8+8-339r8m046#9$958?4V8_929H7i6D6Z6u3A0m5l1?9R0`8M8U9x6l5,6p8N9x4K9^5}9@9w9=9-249:9+8/aa9;5*9X0Y8*8,9T948#9z6za8459cag8Va26ya4a09=9ia59=6l6K6M6Oap9%460`6;6?au6I04alan9#3e6~80722J7f3,0$0(0*04.