Zum Inhalt springen

Stack in C++


Bluetooth

Empfohlene Beiträge

OK hier der code:


class Data

{

public:

  Data() {inhalt=0; prev=0;}

  Data(int daten) {inhalt=daten; prev=0;}

  int inhalt;

  Data* prev;

};


class Stack

{

public:

  // Default- Konstruktor

  Stack()

  {

    daten=0;

    index=0;

  }

  // Destruktor

  ~Stack()

  { 

    while (index != 0)

    {

      pop();

    }

  }


  // Daten hinzufügen

  void push (int daten)

  {

    if (index == 0)

    {

      daten = new Data(daten);

      index++;

    }

    else

    {

      Data tmp = new Data(inhalt);

      tmp.prev=daten;

      daten=tmp;

      index++;

    }

  }

  int pop  ()

  {

    if (index > 0)

    {

      return daten.inhalt;

      Data tmp = daten.prev;

      delete daten;

      daten = tmp;

      index--;

    }

    else if (index == 0 )

    {

      return daten.inhalt;

      delete daten;

    }

    else

    {

       cout<<"Stack ist leer"<<endl;

    }

  }

private:

  Data* daten;

  int index;

so ich denke das das laufen sollte und das sich keine fehler eingeschlichen haben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

daten ist aber auch der Zeiger auf die daten im Stack. vielleicht eine etwas unglückliche namenswahl.

Stack::daten = new Data(daten);

und im else zweig dann auch

tmp.prev=Stack::daten;

Stack::daten=tmp

das denn besser.

ps: einfacher wären glaubich auch andere namen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

<BLOCKQUOTE><font size="1" face="Verdana, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von maddin:

daten ist aber auch der Zeiger auf die daten im Stack. vielleicht eine etwas unglückliche namenswahl.

Stack::daten = new Data(daten);

und im else zweig dann auch

tmp.prev=Stack::daten;

Stack::daten=tmp

Link zu diesem Kommentar
Auf anderen Seiten teilen

eigentlich genau meine rede.

wiso etwas selber schreiben, was schon vorhanden ist. besser und schneller bekommt man das glaubich nicht hin. (ich hoffe damit niemanden zu beileidigen / die fehler waren ein beweis dafür :D ).

die frage lautete allerding nach dem schon mal selber programmiert. da dachte ich es ging um ein beispiel, wie soetwas aussieht.

ps: ich weiß jetzt nicht, was du mit simikolon hinter dem letzten statemant meinst, aber ich denke es ist, das ich vergessen habe die klasse zu schließen. oder

pps: normalerweise habe ich aber auch einen compiler zur hand, um zu checken, was ich mache, aber das war zu dem zeitpunkt nicht der fall.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@code_warriors_deluxe:

Fachlich prima aber ungünstigerweise für Anfänger nicht verständlich.

(Ich selbst glaube auch nur zu wissen worum es geht)

Abgesehen davon habt ihr etwas gegen:

  • Einrücken?
  • Kommentare?
  • Verständliche Namen? (In C kann man mehr als 8 Zeichen beutzen :))

@Bluetooth: Was willst du den machen?

Und was verstehst du unter einem Stack?

Sorry, aber Stack heißt so weit ich weiß doch nicht anderes als Stapel, oder?

Was soll der Stapel den können?

Und was soll er stapeln?

G33tz Ketzer

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...