Advertisement
thorium90

Stack.h

Nov 11th, 2011
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.06 KB | None | 0 0
  1. /*
  2.    ___|  _)  | _)       _)                         ___|                    
  3.  \___ \   |  |  |   __|  |  |   |  __ `__ \       |       _ \    __|  __ \  
  4.        |  |  |  |  (     |  |   |  |   |   |      |      (   |  |     |   |
  5.  _____/  _| _| _| \___| _| \__,_| _|  _|  _|     \____| \___/  _|     .__/  
  6.                                                                      _|  
  7. Code source libre de droit. Si vous utilisez mon code, merci à vous d'en préciser la source.
  8.  
  9. Date : 11/11/2011
  10. Auteur : Silicium Corp
  11. */
  12. #ifndef STACK_HEADER
  13. #define STACK_HEADER               //Evite les inclusions multiples
  14. #include <WProgram.h>              //Permet au compillateur Arduino de bien faire son travail quand on taf avec nos propres librairies
  15.  
  16. #define LENGTH_STACK   64          //Constante pour la taille du tableau utilisé par la stack
  17. #define FIFO true                  //Define de lisibilité
  18. #define LIFO false                 //Define de lisibilité
  19.  
  20. class Stack                        // /!\ CET OBJET NECESSITE QUE DANS LE SETUP DE LA CARTE ARDUINO SOIT INITIALISE UNE CONNEXION SERIE.
  21.                                    //SINON, LA FONCTION show() push() et pop() POSSERONT UNE ERREUR A LA COMPILLATION
  22. {
  23.  
  24.     private :
  25.         byte LENGTH;                //Contient la taille du tableau utilisé par la stack
  26.         byte data;                  //Correspond à une variable temporaire qui sera copié dans la stack. Si c'est votre propre type, attention à inclure le header dans ce fichier
  27.         byte stack[LENGTH_STACK];   //Correspond au tableau composant le stock de la stack.
  28.     byte nextPush;              //Correspond à l'index du tableau qui sera remplis par le prochain push()
  29.         byte nextPop;               //Correspond à l'index du tableau qui sera retiré par le prochain pop()
  30.         byte nbElement;             //Correspond aux nombres d'element contenu dans la stack
  31.         boolean isFIFO;             //Correspond au mode de fonctionnement de la stack
  32.        
  33.     public:
  34.         Stack(boolean);              //Constructeur, attend en parametre le mode de la stack FIFO ou LIFO
  35.        
  36.         byte getLength();            //Retourne le nombre d'élément que peux contenir la stack (Correspond à la valeur de la constante du #define LENGTH_STACK
  37.         byte* getStack();            //Retourne le pointeur de la premiere position du tableau
  38.         byte getNextPush();          //Retourne l'index du tableau qui sera remplis par le prochain push()
  39.         byte getNbElement();         //Retourne le nombre d'élément dans la stack
  40.         void setFIFOmode(boolean);   //Permet de changer le mode de fonctionnement de la stack()
  41.         void push(byte);             //Permet de saisir de la data dans la stack
  42.         void init();                 //Réinitialise la stack
  43.         byte pop();                  //Retourne et retire l'element de la stack à donner en fonction du mode de fonctionnement de la stack
  44.         void show();                 //Imprime pas le port serie le contenu de la stack sans modifier les indexs.
  45. };
  46. #endif
  47.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement