Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- template<class T> class Stack {
- public:
- virtual void push(T el) = 0;
- virtual T peek() = 0;
- virtual int size() = 0;
- virtual T pop() = 0;
- };
- struct element
- {
- T value;
- element* prev;
- };
- template<class T> void printStack(Stack<T>& s) {
- for(int i = 0; i < s.size(); ++i) {
- cout << s.pop() << " ";
- }
- }
- template<class T> void swapStacks(Stack<T> &s1, Stack<T> &s2) {
- // Обменять их содержимое
- }
- template<class T> class LinkedStack : public Stack<T> {
- private:
- T*last;
- T v;
- public:
- LinkedStack(){next=0; prev=0;}
- void push(T el){
- v=el;
- if(last==0){
- last = v;
- }
- else
- {
- }
- }
- // Стек на списке
- };
- template<class T> class ArrayStack : public Stack<T> {
- private:
- int s;
- // Стек на массиве (память освобождаешь только в деструкторе (не считая старых блоков)), при недостатке выделяй большими порциями, например 50.
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement