File avec deux piles⚓︎
On choisit d'implémenter une file
à l'aide d'un couple [p1,p2]
où p1
et p2
sont des piles. Ainsi file[0]
et file[1]
sont respectivement les piles p1
et p2
.
Pour enfiler un nouvel élément valeur
dans file
, on l'empile dans p1
.
Pour défiler file
, deux cas se présentent :
- La pile
p2
n'est pas vide : on dépilep2
.
- La pile
p2
est vide : on dépile les éléments dep1
en les empilant dansp2
jusqu'à ce quep1
soit vide, puis on dépilep2
.
La structure de pile est utilisable au travers de leur interface constituée des fonctions suivantes :
cree_pile_vider
: renvoie une pile videdepiler
: prend en paramètre unepile
et renvoie une nouvelle pile où on a supprimé l'ancien sommetempiler
: prend unelement
quelconque et unepile
et renvoie une nouvelle pile oùelement
est le sommet.est_pile_vide
: prend en paramètre unepile
et renvoie True si la pile est videlire_sommet
: prend en paramètre unepile
et renvoie la valeur stockée au sommet d'une pile NON VIDE
Python Console Session
>>> ma_pile = creer_pile_vide()
>>> est_pile_vide(ma_pile)
True
>>> empiler(5, ma_pile)
>>> empiler(4, ma_pile)
>>> lire_sommet(ma_pile)
4
>>> depiler(ma_pile)
A partir des opérations sur les piles fournis dans le module, écrire en Python les fonctions suivantes :
- une fonction
creer_file_vide()
qui renvoie unefile
vide de tout élément. - une fonction
est_vide(file)
qui prend en argument unefile
et qui renvoieTrue
si lafile
est vide,False
sinon. - une fonction
enfiler(file, valeur)
qui prend en arguments unefile
et un élémentvaleur
et qui ajoutevaleur
en queue de lafile
. - une fonction
defiler(file)
qui prend en argument unefile
et qui renvoie l'élément en tête de lafile
en le retirant.
On doit utiliser exclusivement les fonctions fournies. Aucune connaissance de la manière dont sont stockées les valeurs de la pile n'est nécessaire.
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
.128013kp;n7=(32v[fahD1:-tS6àdRm0]jP)c.u8_swl,éA4obiery5Tg9/ 050x0U0t0n0T0M0K0$0F0M0n0K0K0g010t0T0c010406050K0H0z0z0n0V0W040u0R0M0H0`0R0e050#111315170 0c04051n1g1q0#1n0 0x0T0k0/0;0?0^0;0e0Z0H0n0Z0U0s0c0W0t0o1e0$0o0T0Z0o0M1S0o0t0}050*0S0M0U1z0=0@011R1T1V1T0t1#1%1Z0t0V1o1N0/1a0K0c0n0e0^0j011)1B010m0,0U0e0n0z0U1Z1~20251+281%2b2d0}0a0$0D0V0R0c0R0K0T1d0e0$0(1|0V0V0U0F2y1g2g0e1o0#1N2L1^1`1_1!0x2i1C0T0e2a2v1Z1w1y0:1*2V2X0e0R2#1Z0c2E1o2J2L2=101 2z2%262+0V140M1Z0n1Q2E0m0^030J0J0F2,0U1V2*0R0s0q3g0}0$0q1g0n2?2_0~2^2h2{1+2}2 31330U350137393b3d2Y3g0s23040$0j3m3o203q2J2U013v0n301o320o3436383a0(3F2+3H0i3j0i3N2I3p0 3R3t0^3U3W053Y3!3B3$3E2W3G3h0Q3j0Q3/1h3;3r2`1A3u0R2~3V3x3Z3z3#3D3(413*3h0X3j0X472=3=2_3S3_4h3}3C3%3c4n3f3h0v3j0v4t493?4c3^4e3w3X3y3A4B403e3H0f3j0f4K3P4v3s4N3T4P4g4R4i4T3 4m4W3h0I3j0I4#2K4%4b2(4*4f3`3|4j3~4l4D4=0s0!3j0!4`3Q4w3@4 4Q3{4S4k4C3)4F3g0A0}0q0A5c4|4x4+515j545l4E3H0q0q5q3l0#3n3:4$4a5v504z534U4;423g3J0q3M5H3O4{5L5f4y4-4A4:565S0q3,045,5t5!4)5$5i4.5k4V5+445.465X5J5Z4M4~5?524/555m5C4q5.4s5 485K622|5w5O665A570q4H5.4J6d4u5;636i5%5P5)683h0q4Y5.4!6r4L5e5=6v5@5(675B6A4@5.4_6F6f6H6u5N6w6k5`4o3g595.5b6S616U6h6W6K6x6M570j5p046=5:6g4d6-655_5R6!0j5E6@5G5I6e6*4(6V5h6}5z6Z5n0j3J7f6_6+6{7a5y5Q5*705-0j3.6)5d786,7l5^7c6 7e5|0j5~756s6`4O6|7m6y6N3I6a0j6c7F3p1r2:1g2#2O0x1`2T5f4C2!1x1o2/0U2;7S761o4C7,2h0T0x0^382J5C3x7?7^6:5+242m0U7~6l802L5I7H010b0}0(0m603K6t2|0m0}0F2E0U0V0J2k0U0J0k7?0U8f8h1+0|040h0E0r8f0 7.5L7}017_2_3H3J5i8I7L6;812c838J7 701Z5 890L3j0$8%8w890K0x0}02030i0!0d8.8:8=8/8;0y2a0k0R0T1(0H2X0$8q0$8t0(8?8;988^8@8E8)4w8P0J7`3h5-8O7@8V856!3,0$82847d3+8Y3n8%8(898b042E0t0H0V1f7.0$8x0^8z0l9e7v3u8k8m8o0c298s8u9O4}268z8B0N8f9J890e9R0U8n0J9U1%9W0(9Y3S9#0E0B9d8G3R9g9i0s5|9l9t7A3H449r8Ta47o5na25X8F2@9~9m8K203H6aa39n9u4p8S2daa6z0sam8Z7j0^9B8d9(9K3T8j040U0K0t8p9V968v9}ay019#9@5#0}8qaS4)8z8C9|ag9fai9h8L4G7|a%9o5n4Ha8asaoa5a*877;9Z1+8#3K9yaW4~8+8-8_9b99b38{0e8}8 0$0Y0V0H1(2w0$0;93290$aH0t958u9abqb3a!7Sah7~a06Can8Q5S4Ya:8UbA6!by5X9y9)aP9B9D9F9H2=bK9P3^0}bm9/aL9XaObSaQ0}0ha 2|aU29b(8y0}9NbZa`0^0z0T0}5sb:9^0}0B0EaC890Ra|200xb aP9+aGaIbW9;aMb,9Lb$cd3Tb*1%cg9Mcgb?5qckb|b~7.afbua$bwa)0s6Pbz8W5n4@bDat7Mczae9@9 cx6$cAa-3H59cEa=abcP9wa_3SaA3zc5b!0eaF2a8q0Vcp8Acgc7aVb`5f8z9%9IaDc70k3V0U9Fc+aZcscJa%a05ra+cF6m5pcRbF5nd4a^aDa|bJcgb104br8@9a0P0C0R1c1(0M9a0O0M0O2d0ebnc`1%9F0$0wbh328qdkb59cd0b`cKak6A72cNap3g5Ed9cB5CdQbIa~9*ciaNa#b!clc:4)cn04b_d(b;b#049{c@c00}0gc!d;c70ccg0R0}0Gc-bU0z9:8nc+b%d+630}dAc|c*eb9!0}c?bQc^d$c+b/d:3Sd-d/cud)cqbt3P8Hd2cx5Vd5cSaueCdVcO6A8NcIdMeAdO3g9k329geIeParbEdW6A9kaxb!cY8ed^c6aF8d29egeqc;cfeh9Q04c/e.aX0}c 6seMcweO0qa2eRa,dSf0eVd65{cVde8$8(e;0^didIb40dex2Keze~0e69eDdafoeHf4aw88aPdibJ0p0O94910$dudw2abn2Bbie@49e}8Vd36odRa?3ga/9seE7M6nf98*8,a}8%b7b91(0F0)fDdvdx0tfjcWdNfn6Abyf2f76!6Bf6fV6mbHfvb!fx9yfg9af:flfNeBczf_f~5+cDfUfq6OcVdg9A0}0Te%eld#04d fd01e104e3gtc7bVe79=d%eud;aRgyengtd*e^4~d-5GgLeid?e{fLeqf=5CcMgcgh6#f}gZ0qcMdZbJ9zbL0}0L1Rcje(b!c10}2+f/g;d}0}gsgP1+gvgxg~bTc8aJgBccgJe:h2che?b+h804epgEerb@d.c+b}8DdLgUeNf?3I6?fQcT3h6=g#eXhsgjg*hCem04eec}g`3Sgvd{hIaTgre0e2e4041V2E9h0R130)e9hRfKey89gKhh5feshlcre|hpfm8MdQgYhz71hyeTh^a^hChDgqh#fkh%b.cmhjeth$aP8zd@gpaPhKd|4xg|hPgwhR0(e7e-h)e_c,gHhcg:hah(i7b!h+heb}g7bvg9eO7ffph@23fsfRiEh|h}gkc6gIiti3gtgNhlie5fidhM5=iggth0hR0Ue6e,hZiqhGimivgFejiViZirgDi/b{hfi4coiyh-gThhgVhweQ0$eSdS7rh_j7eZ9xd!iO040nc`dyi=4~iXibc#i!hai$iqhT8r0KhW2dg_iQiphac.hdjyhgi_h*hjgOin4~i9i 5KfMajhr7DiFh`a7ggh@adjcg+jni@eoi|5.iUiYjkd`jjb)hOi#hQiqiki*heeajAiPjJgQjEi1aPiTi~iAcviCjQamh?h`4qiIhv7NhBjZd;bM0)bOj-e=jg20jxj0ey0#7:7T7+7V7(1g0t7Ykx2R2M0n1$ku0#7W8F0(0*0,0K04.
# Tests
(insensible à la casse)(Ctrl+I)