Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Postfix-Ausdruck berechnen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
23.05.2004, 14:34 Uhr
~Chris Stein
Gast


Hallo Zusammen!

Schildere Euch erstmal mein Problem: ich habe einen Infix-Ausdruck (z.B. (3*((5+1)+2)) ) mit einem C++-Programm in einen Postfix-Ausdruck umgewandelt (hier: 351+2+*). Wie muss ich jetzt vorgehen, damit ich den ausgegebenen Postfix-Audruck BERECHNEN kann, angenommen dieser besteht nur aus ganzzahligen Zeichen (und eben den Operatoren)?

Vielen Dank und Gruß,

Chris
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.05.2004, 14:47 Uhr
0xdeadbeef
Gott
(Operator)


Du brauchst nen Wertestack. Dann gehst du den Ausdruck durch, schiebst die Werte auf den Stack, und immer, wenn ein Rechenzeichen kommt, poppst du zwei Werte vom Stack, verrechnest sie entsprechend und pushst das Ergebnis zurück. Wenn du durch den Ausdruck durch bist, hast du nur noch einen Wert auf dem Stack - das ist dein Endergebnis. In diesem Fall sähe der Verlauf so aus:

Code:
    1   2
  5 5 6 6 8
3 3 3 3 3 3 24


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: