[FEATURE REQUEST] <title>Add Postfix Expression Evaluation implementation with JUnit tests

Offen
#7,588 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
78/100
Issue-Typ
Feature
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
java
Bereich
backend

Rechercherichtung

Beginnen Sie mit dem Lesen von src/main/java/com/thealgorithms/stacks/InfixToPostfix.java und InfixToPrefix.java, um die Paket- und Projektkonventionen einzuhalten. Fügen Sie die benannte PostfixEvaluation.java und das zugehörige JUnit-5-Gegenstück hinzu, wobei Standardoperatoren, mehrstellige Operanden, negative Ergebnisse, einzelne Operanden, ungültige Ausdrücke und Division durch null abgedeckt werden. Führen Sie ./gradlew test oder mvn test aus; abgeschlossen ist die Aufgabe, wenn die neuen Tests bestehen und die Formatierungsregeln eingehalten werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

enhancement
What would you like to Propose?

Feature Description

I would like to propose adding an implementation of Postfix (Reverse Polish Notation) Expression Evaluation in Java using a Stack.

The repository currently has InfixToPostfix.java and InfixToPrefix.java, which convert expressions into postfix/prefix notation, but there is no implementation that actually evaluates a postfix expression to compute its result. This would be a natural and useful complement to the existing conversion utilities.

Proposed Changes

I would like to add:

PostfixEvaluation.java under src/main/java/com/thealgorithms/stacks/
Complete implementation with clear Javadoc explanations (O(N) Time, O(N) Space).
Support for standard operators (+, -, *, /) and multi-digit operands.
Proper handling of invalid expressions / division by zero.
PostfixEvaluationTest.java under src/test/java/com/thealgorithms/stacks/
Comprehensive JUnit 5 test suite covering standard expressions, negative results, single-operand expressions, and invalid input handling.

Verification

I will ensure all code follows the project's formatting rules and passes ./gradlew test / mvn test locally before opening a PR.

I would love to implement this as my first open-source contribution! Could a maintainer please assign this issue to me?

Issue details

Issue Details & Algorithm Overview

  1. Algorithm Description

Algorithm: Postfix (Reverse Polish Notation) Expression Evaluation
Category: Stacks / Expression Evaluation
Language: Java

  1. How the Algorithm Works

Given a valid postfix expression (e.g., "23+" representing 2 + 3), evaluate it to a single numeric result using a stack.

Key Logic:

Scan the expression token by token.
If the token is an operand, push it onto the stack.
If the token is an operator, pop the top two operands, apply the operator, and push the result back onto the stack.
After processing all tokens, the stack contains exactly one value — the final result.

  1. Complexity Analysis

Time Complexity: O(N) — single pass through the expression.
Space Complexity: O(N) — stack storage in the worst case (all operands).

  1. Planned Files & Folder Structure

src/main/java/com/thealgorithms/stacks/PostfixEvaluation.java (Implementation)
src/test/java/com/thealgorithms/stacks/PostfixEvaluationTest.java (JUnit 5 Test Suite)

Additional Information

No response

Vorherrschende Sprache
Java
Sterne
66.3k
Forks
21.3k
Ø Merge
16 Std. 57 Min.
Gemergte PRs (30 T.)
23

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus TheAlgorithms/Java

Alle Issues in TheAlgorithms/Java

Ähnliche Issues

Weitere Issues zu Java

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.