Universität Paderborn - Home Universität Paderborn
Die Universität der Informationsgesellschaft

Objektorientierte Programmierung WS 2013/2014 - Datei stackloes.cc

#include <cassert>
#include <iostream>
using namespace std;

template<class T> class simpleStack {
 
 public:
  static const int MAX_SIZE = 255;

  simpleStack() {
     numberofelems = 0;
  }
  bool empty() {
    return numberofelems == 0;
  }
  bool full() {
    return numberofelems == MAX_SIZE;
  }
    
  T* top(){
    assert(!empty());
    return array[numberofelems-1];
  }
  
  void pop(){
    assert(!empty());
    --numberofelems;
 }
  
  void push(T *x) {
  assert(!full());
  array[numberofelems++] = x;
 }
 
 private:
  int numberofelems;
  T* array[MAX_SIZE];
 
 };

class Element {
  public:
    Element(int val) {
     value = val;
    }
    Element(){}
    void printMe() {  
       cout << value << endl;
    }
  private:
    int value;
};
 
class Test{
 public:
  static void myMain () {
   simpleStack<Element> *myStack = new simpleStack<Element>();
   myStack->push(new Element(5));
   myStack->push(new Element(7));
   myStack->push(new Element(9));
   myStack->top()->printMe();
   myStack->pop();
   myStack->top()->printMe();
  }
}; 

int main(int argc, char ** argv) {
 Test::myMain();
}

Generiert mit Camelot | Probleme mit Camelot? | Geändert am: 19.11.2013