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
sommetqui vautNone - Sinon, une pile sera modélisée par son attribut
sommet: une instance deMaillonportant l'élémentau sommet de la pile et qui pointe àgauchevers 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 !!!
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.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.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)