[Spoiler] Structure permettant de gérer une pile d'entiers + fonctions de manipulation

Voir le sujet précédent Voir le sujet suivant Aller en bas

[Spoiler] Structure permettant de gérer une pile d'entiers + fonctions de manipulation

Message par Samy.C le Mar 14 Juin - 10:31

Pile.java 

Code:
/*" auteur :" crossette
" date :" 13 juin 2016
" nom fichier :" Pile.java*/
class Pile
{
   public static int taille = 50;
   public int[] tab;
   public int indice;

   public static void init_pile(Pile lifo)
   {
      lifo.tab = new int[Pile.taille];
      lifo.indice = 0;
   }

   public static boolean empiler(Pile lifo, int val)
   {
      boolean ok = false;

      if (lifo.indice == Pile.taille)
      {
         ok = false;
      } else
      {
         lifo.indice++;
         lifo.tab[lifo.indice] = val;
         ok = true;
      }

      return ok;
   }

   public static boolean depiler(Pile lifo, Entier val)
   {
      boolean ok = false;

      if (lifo.indice == 0)
      {
         ok = false;
      } else
      {
         val.setVal(lifo.tab[lifo.indice]);
         lifo.indice--;
         ok = true;
      }

      return ok;
   }

   public static void afficher(Pile lifo)
   {
      int i = 1;

      while (i <= lifo.indice)
      {
         System.out.print(lifo.tab[i] + " ");
         i++;
      }
      
      System.out.println(" ");
   }

}

(OPTIONNEL) Main.java :

Code:
/*" auteur :" crossette
" date :" 13 juin 2016
" nom fichier :" Main.java*/
public class Main
{
   public static void main(String arg[])
   {
      Entier val = new Entier();
      Pile lifo = new Pile();
      boolean succes = false;
      int fin = 0;
      Choix rep;

      Pile.init_pile(lifo);

      while (fin == 0)
      {
         System.out.println(" ");
         System.out.println("'Empiler' ou 'Dépiler' ou 'Afficher' ou 'Fin' ?");
         rep = Choix.saisirChoix();

         switch (rep)
         {
         case EMPILER:
            System.out.println("Valeur :");
            val.setVal(Lire.i());
            succes = Pile.empiler(lifo, val.getVal());
            if (succes)
            {
               System.out.println("Empilage réussi");
            } else
            {
               System.out.println("Echec de l'empilage");
            }
            break;

         case DEPILER:
            succes = Pile.depiler(lifo, val);
            if (succes)
            {
               System.out.println("Dépilage réussi");
               System.out.println("Chiffre dépiler : " + val.getVal());
            } else
            {
               System.out.println("Echec du dépilage");
            }
            break;

         case AFFICHER:
            Pile.afficher(lifo);
            break;

         case FIN:
            fin = 1;
            break;
         }

      }
   }
}

Choix.java 

Code:
/*" auteur :" crossette
" date :" 10 juin 2016
" nom fichier :" Colorie.java*/
enum Choix
{
   EMPILER, DEPILER, AFFICHER, FIN;
   public static Choix saisirChoix()
   {
      String s;
      Choix col = null;
      boolean ok = true;
      do
      {

         System.out.println();
         System.out.print("Choix : ");

         s = Lire.S().toUpperCase();
         try
         {
            col = Choix.valueOf(s);
            ok = true;
         } catch (Exception e)
         {
            ok = false;
         }
      } while (!ok);
      return col;
   }

};

Lire.java & Entier.java sont utilisés.

Samy.C

Messages : 42
Karma Karma : 55
Date d'inscription Date d'inscription : 24/05/2016
Age Age : 21
Localisation Localisation : Cellule AFPA
Humeur Humeur : Gone

Voir le profil de l'utilisateur http://youtube.com/sonicdbzfan07

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum