Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Stack in C++

Empfohlene Antworten

Veröffentlicht

Wer hat in seinem FI-Leben schon einmal einen Stack in C++ realisiert ?? Wäre nett, wenn mir jemand einmal die Syntax dafür schicken könnte !!

Vielen Dank im Vorraus :-)

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.

Vielen Dank Maddin !!

hab's grad compiled. sind leider noch ein paar kleine Fehler drin, aber das ist schon mal ein Ansatz.

MfG

Blauzahn :-)

syntaktische oder logische fehler ???

außerdem kann soetwas schon einmal passieren wenn man sich bloß 5 min zeit nimmt.

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.

<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

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.

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

eigentlich genau meine rede.

wiso etwas selber schreiben, was schon vorhanden ist. besser und schneller bekommt man das glaubich nicht hin.

schon klar was statements sind. bloß ich habe als einziges fehlendes semikolon das was eigentlich ans ende der klasse hinter der fehlenden klammer gehört gesehen und wollte nur wissen, ob es da noch andere fehler gibt.

Moin Jungs,

schön das Ihr Euch so ausgiebig mit meinem Problem beschäftigt.

Da ich auf diesem Gebiet newbee bin und nicht sooo viel von Programmierung verstehe hat mich Euer Lösungsansatz nur noch mehr verwirrt !!

MfG

König Blauzahn :-)

@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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.