stack problem



  • hi,
    also erstmal im voraus: ich bin noch ein einsteiger in sachen c++.
    ich habe folgendes programm zum austesten von stacks geschrieben.

    #include <iostream>
    
    using namespace std;
    
    class tKnoten
    {
    public:
            int Daten;
            tKnoten *Naechster;
    };
    
    class tStack
    {
    public:
            tStack();
            ~tStack();
            void Rauf(int Daten);
            int Runter();
    
    private:
            tKnoten *Anker;
    };
    
    tStack::tStack()
    {
        Anker = 0;
    }
    
    tStack::~tStack()
    {
        tKnoten *Letzter;
    
        while(Anker)
        {
            Letzter = Anker;
            Anker = Anker->Naechster;
            delete Letzter;
        }
    }
    
    void tStack::Rauf(int Daten)
    {
        tKnoten *Knoten = new tKnoten;
        Knoten->Daten = Daten;
        Knoten->Naechster = Anker;
        Anker = Knoten;
    }
    
    int tStack::Runter()
    {
        int Inhalt = 0;
    
        if(Anker)
        {
            tKnoten *Alt = Anker;
            Anker = Anker->Naechster;
            Inhalt = Alt->Daten;
            delete Alt;
        }
        return Inhalt;
    }
    
    int main()
    {
        tStack *Stack;
    
        Stack->Rauf(12);
        Stack->Rauf(32);
        Stack->Rauf(18);
    
        cout << Stack->Runter() << endl;
        cout << Stack->Runter() << endl;
        cout << Stack->Runter() << endl;
        cout << Stack->Runter() << endl;
    
        system("pause");
    }
    

    hier wird komischerweise bei der ausführung des codes beim 4. aufruf von Stack->Runter() eine zahl ungleich 0 zurückgegeben. wieso? und warum funktionert es so wie es soll wenn ich statt einen zeiger auf tStack, ein objekt dieser klasse definiere? 😕

    mich würde auch mal gerne interessieren ob und was an meinen programmier-stil auszusetzen/verbessern gibt. was ich mir da vorstellen könnte ist das ich eigentlich alle namen auf deutsch gewählt habe und nicht auf englisch oder ein teil englisch und der andere deutsch (außer stack, das wort kenn ich aber auch schon viel länger so als das wort stapel) weil ich nur in einer sprache programmieren will, entweder deutsch oder englisch, sonst kommt man zu schnell durcheinander



  • sorry für den doppelpost, aber ich hatte irgendwie ein problem mit der vor/zurück funktion meines browsers

    sry

    bitte löschen




Anmelden zum Antworten