wie geht dem?



  • Schreiben Sie eine Klassendefinition für ein Stack IntStack dynamischer Größe aus ints.
    - Implementieren Sie es mit Hilfe eines internen Array aus ints, dessen Größe dem Konstruktor als Parameter
    übergeben wird
    - Implementieren Sie die Methoden push und pop und die Statusmethoden empty und full sowie den Konstruktor
    und dessen Destruktor als inline-Funktion als Bestandteil der Klassendefinitionen.
    - Zu Beginn soll der Stack leer sein. Am Ende des ausgeführten Destruktors auch. push und pop sollen nicht selbst
    den Status des Stacks in einer Statusvariablen zurückgeben. Diese Überprüfung geschehe durch den Benutzer
    mit Hilfe der beiden o.g. Statusmethoden ungeachtet dessen sollen Vor- und Nachbedingungen durch
    Zusicherungen Überprüft werden, die ggf. zum Programmabbruch führen (defensiver Programmierstil)
    - pop möge als Funktionswert den gespeicherten int zurückgeben und ihn auch vom Stack löschen.
    - Achten Sie auch auf saubere Kapselung der internen Datenstrukturen. Treffen Sie Vorkehrungen, daß der
    Konstruktor nicht als Typunwandlungsoperator von int nach IntStack verwendet werden kann.



  • naja, wir lösen hier nicht deine Hausaufgaben. Du solltest mal das Projekt anfangen und bei konkreten Problemen nachfragen! Ansonsten würst du mit Google zu dem Thema sicher 1000 Codes finden.



  • das hab ich bis jetzt

    class Stack{
    public:
       explicit Stack(int size): groesse(size), top(EMPTY);
       ~Stack { delete []s; }
       void push();
       int pop();
       bool empty() const { return top == EMPTY; }
       bool full() const { return top == groesse-1; }
    private:
       enum { EMPTY = 0 };
       int groesse, top, *s;
    }
    
    Stack::Stack(int size):groesse(size), top(EMPTY)
    {
       assert(size>0)
       s = new int[size];
    }
    
    int Stack::pop()
    {
        return s[--top];
    }
    


  • ich hab jetzt den anfang rein, kann jetzt jmd helfen?



  • Stell ne Frage.



  • frage: kann jetzt jmd helfen?



  • nein.



  • Original erstellt von <sonofbitch>:
    frage: kann jetzt jmd helfen?

    Anscheindend raffst Du hier was nicht...
    Antwort auf Deine Frage: Wahrscheinlich kann Dir jemand helfen!
    Aber wenn man nicht weiss wobei, wird Dir keiner helfen.



  • also zum einen total asozial das mit frage: kann jetzt jmd helfen war nicht von mir, naja, bin selbst dran schuld, wenn ich mich registriere. obwohl der jenige mit der frage ja recht hatte. thx an unbekannt dann halt nochmal anders:

    is der prgramteil den ich geschrieben habe in etwa richtig? und die funktionen push und pop krieg ich nciht ganz hin.

    kann mir nun jemand helfen



  • Original erstellt von <sonofbitch>:
    **is der prgramteil den ich geschrieben habe in etwa richtig? und die funktionen push und pop krieg ich nciht ganz hin.

    kann mir nun jemand helfen**

    Soweit ich das sehe, ist das schon ganz in Ordnung, auch pop sieht doch ok aus!

    void Stack::push(int value)
    {
        s[top++] = value;
    }
    

    Und bei full() solltest Du einfach auf "groesse" überprüfen, also das "-1" weg!



  • thx!!!!


Anmelden zum Antworten