Advertisement
Guest User

Untitled

a guest
Sep 20th, 2014
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.16 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4.  
  5.  
  6. template<class T> class Stack {
  7. public:
  8.     virtual void push(T el) = 0;
  9.     virtual T peek() = 0;
  10.     virtual int size() = 0;
  11.     virtual T pop() = 0;
  12. };
  13. struct element
  14. {
  15.     T value;
  16.     element* prev;
  17. };
  18.  
  19. template<class T> void printStack(Stack<T>& s) {
  20.     for(int i = 0; i < s.size(); ++i) {
  21.         cout << s.pop() << " ";
  22.     }
  23. }
  24.  
  25. template<class T> void swapStacks(Stack<T> &s1, Stack<T> &s2) {
  26.     // Обменять их содержимое
  27. }
  28.  
  29. template<class T> class LinkedStack : public Stack<T> {
  30. private:
  31.     T*last;
  32.     T v;
  33. public:
  34.     LinkedStack(){next=0; prev=0;}
  35.     void push(T el){
  36.         v=el;
  37.         if(last==0){
  38.             last = v;
  39.         }
  40.         else
  41.         {
  42.  
  43.         }
  44.     }
  45.     // Стек на списке
  46. };
  47.  
  48. template<class T> class ArrayStack : public Stack<T> {
  49. private:
  50.     int s;
  51.  
  52.     // Стек на массиве (память освобождаешь только в деструкторе (не считая старых блоков)), при недостатке выделяй большими порциями, например 50.
  53. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement