Wenn wir einen einfachen Infix-Ausdruck ähnlich wie „7*2+100-5+3-4/2“ eingeben, kann unser Compiler den von uns geschriebenen Code verwenden, um diesen Ausdruck in einen Ausdruck umzuwandeln Das Ergebnis
Dieser Ausdruck enthält zwei Hauptelemente, eines ist eine Zahl und das andere ein Symbol. Dann müssen wir zwei Stapelstrukturen erstellen, um die Daten zu speichern SymbolstapelOperStack: Speichert Operatoren
1 Zuerst müssen wir einen Index zum Durchlaufen unseres Ausdrucks definieren
3. Es wird in die folgenden Situationen unterteilt:
3.2 Wenn der Symbolstapel einen Operator hat, muss er verglichen werden
Wenn der Wenn die Priorität des aktuellen Operators kleiner oder gleich der des Operators im Stapel ist, müssen Sie zwei Zahlen aus dem Zahlenstapel entfernen, ein Symbol aus dem Symbolstapel entfernen, die Operation ausführen, das Ergebnis abrufen und es in den einfügen Zahlenstapel. Legen Sie dann den aktuellen Operator in den Symbolstapel ab
Wenn die Priorität des aktuellen Operators größer ist als die des Operators im Stapel, legen Sie ihn direkt in den Symbolstapel ab4. Wenn der Ausdrucksscan abgeschlossen ist, Entfernen Sie nacheinander den Zahlenstapel und die Symbole vom Stapel. Nehmen Sie die entsprechenden Zahlen und Symbole vom Stapel und führen Sie Berechnungen durch. 5. Die letzte im Zahlenstapel gespeicherte Zahl ist das Ergebnis der Code-Implementierung
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Stack, um eine einfache Taschenrechnerfunktion in Java zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!