Valid XHTML    Valid CSS2    

Listing du fichier pilev1.php

 

00001     <?php
00002     
00003     
# ----------------------------------
00004     
00005     
function creerPile() {
00006     
00007      return( array() ) ;
00008     
00009     }
# fin de fonction creerPile
00010     
00011     # ----------------------------------
00012     
00013     
function
pileVide($p) {
00014     
00015      return(
count
($p)==0 ) ;
00016     
00017     }
# fin de fonction pileVide
00018     
00019     # ----------------------------------
00020     
00021     
function
empiler($valeur,$pile) {
00022     
00023     
$pile
[ count($pile) ] = $valeur ;
00024     
00025      return(
$pile ) ;
00026     
00027     }
# fin de fonction empiler
00028     
00029     # ----------------------------------
00030     
00031     
function
depiler($pile) {
00032     
00033     
$idd
= count($pile) - 1 ; # idd : indice du dernier
00034     
00035     
if (
$idd>=0) {
00036     
$dep
= $pile[ $idd ] ;
00037      unset(
$pile
[ $idd ] ) ;
00038      } else {
00039     
$dep
= "" ;
00040      }
# finsi
00041     
00042     
return( array(
$dep,$pile) ) ;
00043     
00044     }
# fin de fonction depiler
00045     
00046     # ----------------------------------
00047     
00048     
function
montrerPile($pile) {
00049     
00050     
$nbe
= count($pile) ;
00051      if (
pileVide
($pile)) {
00052      echo
"la pile est vide.\n" ;
00053      } else {
00054      echo
"Contenu de la pile :\n" ;
00055      for (
$ide
=$nbe-1;$ide>=0;$ide--) {
00056      echo
" valeur numéro "
.sprintf("%2d",$ide)." : ".sprintf("%4d",$pile[$ide]) ;
00057      if (
$ide
==$nbe-1) { echo " (haut de la pile)" ; } ;
00058      if (
$ide
==0) { echo " (bas de la pile)" ; } ;
00059      echo
"\n" ;
00060      } ;
# fin pour ide
00061     
} ; # finsi
00062     
00063     
} # fin de fonction montrerPile
00064     
00065     # ----------------------------------
00066     
00067     
$p
= creerPile() ; # un simple tableau
00068     
montrerPile
($p) ; # doit afficher "la pile est vide"
00069     
00070     
$p
= empiler(5,$p) ; # la pile ne contient que 5
00071     
$p
= empiler(2,$p) ; # la pile contient 5 et, au-dessus, 2
00072     
montrerPile
($p) ; # voir plus bas
00073     
00074     
list(
$x,$p) = depiler($p) ; # renvoie 2
00075     
echo
"on a enlevé $x (du haut) de la pile\n" ;
00076     list(
$x
,$p) = depiler($p) ; # renvoie 5
00077     
list(
$x,$p) = depiler($p) ; # afficher "impossible, la pile est vide" ou renvoyer "erreur" ?
00078     
00079     /***************************************
00080     
00081     Affichage :
00082     
00083     la pile est vide.
00084     Contenu de la pile :
00085      valeur numéro 1 : 2 (haut de la pile)
00086      valeur numéro 0 : 5 (bas de la pile)
00087     on a enlevé 2 (du haut) de la pile
00088     
00089     ***************************************/
00090     
00091     
?>

Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.

 

 

retour gH    Retour à la page principale de   (gH)