Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef STACK_DEF
- #define STACK_DEF
- #include "lista.hpp"
- template<class T>
- class Stack;
- template<class T>
- void prinResultStack(const Stack<T>&);
- template<class T>
- class Stack:private List<T>{
- public:
- Stack() {}; //preuzima konstruktor bez parametara iz kalse liste List() {init} ;!!
- virtual ~Stack() {} //bez ; !!!
- int getSizeOfStack()const {return List<T>:: getSize();}
- void clearStack() {List<T>:: clear();} //return
- bool emptyStack()const{return List<T>::empty();}
- void addToStack(const T&);
- bool removeFromStack();
- bool readFromStack(T&)const;
- friend void prinResultStack<>(const Stack&);
- };
- template<class T>
- void Stack<T>:: addToStack(const T &value){
- List<T>::add(getSizeOfStack()+1, value);
- }
- template<class T>
- bool Stack<T>:: removeFromStack(){
- if(!emptyStack()) {
- List<T>:: remove(getSizeOfStack());
- return true;}
- else return false;
- }
- template<class T>
- bool Stack<T>:: readFromStack(T &res)const{
- if(!emptyStack()){
- List<T>::read(getSizeOfStack(), res);
- return true;
- }else return false;
- }
- template<class T>
- void prinResultStack(const Stack<T> &ref){
- cout<<"sizeofStack: "<<ref.getSizeOfStack()<<endl;
- cout<<"elementofStack: ";
- T res;
- for(int i=1; i<=ref.getSizeOfStack(); i++){
- if(i>1) cout<<" ";
- ref.read(i,res);
- cout<<res;
- } cout<<"\n"<<endl;
- }
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement