stack.hpp 522 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef STACK_HPP
  2. #define STACK_HPP
  3. #include "semigroup.hpp"
  4. class Stack{
  5. public:
  6. static const size_t capacity=g_max*(g_max+1)/2;
  7. size_t size;
  8. Semigroup** data;
  9. Stack();
  10. void pop(Semigroup** S);
  11. void push();
  12. Semigroup* next();
  13. bool is_empty();
  14. void display();
  15. ~Stack();
  16. };
  17. inline void
  18. Stack::push(){
  19. size++;
  20. }
  21. inline Semigroup*
  22. Stack::next(){
  23. return data[size];
  24. }
  25. inline void
  26. Stack::pop(Semigroup** S){
  27. swap(*S,data[--size]);
  28. }
  29. inline bool
  30. Stack::is_empty(){
  31. return size==0;
  32. }
  33. #endif