Advertisement
nex036ara

Stack

Dec 11th, 2011
321
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.85 KB | None | 0 0
  1.  
  2. #ifndef STACK_DEF
  3. #define STACK_DEF
  4. #include "lista.hpp"
  5.  
  6. template<class T>
  7. class Stack;
  8.  
  9.  
  10. template<class T>
  11. void prinResultStack(const Stack<T>&);
  12.  
  13. template<class T>
  14. class Stack:private List<T>{
  15.           public:
  16.             Stack() {}; //preuzima konstruktor bez parametara iz kalse liste List() {init} ;!!
  17.             virtual ~Stack() {} //bez ; !!!
  18.             int getSizeOfStack()const {return List<T>:: getSize();}
  19.             void clearStack() {List<T>:: clear();} //return
  20.             bool emptyStack()const{return List<T>::empty();}
  21.             void addToStack(const T&);
  22.             bool removeFromStack();
  23.             bool readFromStack(T&)const;
  24.             friend void prinResultStack<>(const Stack&);
  25. };
  26.         template<class T>
  27.             void Stack<T>:: addToStack(const T &value){
  28.                 List<T>::add(getSizeOfStack()+1, value);
  29.             }
  30.  
  31.         template<class T>
  32.             bool Stack<T>:: removeFromStack(){
  33.                 if(!emptyStack()) {
  34.                  List<T>:: remove(getSizeOfStack());
  35.                  return true;}
  36.                 else return false;
  37.             }
  38.  
  39.         template<class T>
  40.             bool Stack<T>:: readFromStack(T &res)const{
  41.                 if(!emptyStack()){
  42.                 List<T>::read(getSizeOfStack(), res);
  43.                 return true;
  44.                 }else return false;
  45.             }
  46.  
  47.  
  48.         template<class T>
  49.             void prinResultStack(const Stack<T> &ref){
  50.                 cout<<"sizeofStack: "<<ref.getSizeOfStack()<<endl;
  51.                 cout<<"elementofStack: ";
  52.                     T res;
  53.                     for(int i=1; i<=ref.getSizeOfStack(); i++){
  54.                         if(i>1) cout<<" ";
  55.                         ref.read(i,res);
  56.                         cout<<res;
  57.                         } cout<<"\n"<<endl;
  58.  
  59.         }
  60.  
  61. #endif
  62.  
  63.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement