Application areas of Stack (Infix to postfix, Infix to prefix)

Computers expressions को evaluate करने के लिए पहले human infix notation (A + B × C) को postfix (A B C × +) या prefix (+ A × B C) में convert करते हैं, precedence rules और brackets की ज़रूरत हटाते हुए, और एक stack conversion करता है।

11 min read · 10 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

Till maths में fail नहीं हो सकता

एक combo order till पर आता है: 2 samosas 15 पर plus 3 chai... software को 2 + 3 × 5 evaluate करना है।

क्या वह 17 है, या 25? आप जानते हैं यह 17 है (पहले multiply), क्योंकि आपके school ने precedence आपमें drill किया।

पर बाएँ से दाएँ पढ़ती एक machine पहले 2 + 3 देखती है और ख़ुशी-ख़ुशी 25 produce करती है। हर calculator को brackets के साथ पूरा BODMAS सिखाना गड़बड़ है। Computer science ने एक साफ़ trick ढूँढा: notation ख़ुद बदलिए, दो lessons पहले वाले stack का इस्तेमाल करते हुए।

Theory

एक sentence कहने के तीन तरीक़े

Operator कहाँ बैठता है यह बस grammar है:

  • Infix: A + B (operator बीच में: human style)
  • Postfix: A B + (operator बाद में: "A और B लीजिए, अब add कीजिए")
  • Prefix: + A B (operator पहले: "अगले दोनों को add कीजिए")

वही meaning, तीन word orders। Magic: postfix और prefix में, कभी कोई brackets और precedence rules नहीं चाहिए। सिर्फ़ symbols का order काम का order तय करता है।

Theory

Rank के rules

Conversion operator precedence पर चलता है (कौन tighter bind करता है):

1. Brackets ( ) पहले, हमेशा

2. Powers ^

3. × और / अगला

4. + और - आख़िर में

5. Equal rank: बाएँ से दाएँ काम कीजिए

तो 2 + 3 × 5 में, + को turn मिलने से पहले × 3 और 5 पकड़ लेता है: expression असल में मतलब है 2 + (3 × 5)।

यही insight conversion method है: invisible brackets visible बनाइए, फिर हर operator relocate कीजिए।

Follow along

Exam recipe: full bracketing से convert कीजिए

  1. Precedence इस्तेमाल करते हुए infix expression को पूरी तरह parenthesize कीजिए A + B × C बन जाता है (A + (B × C)): हर operator को अपना bracket pair मिलता है।
  2. POSTFIX के लिए: हर operator को इसके closing bracket के ठीक AFTER move कीजिए (A + (B × C)) : × (B C) के बाद जाता है, + सब कुछ के बाद जाता है: (A (B C) ×) +
  3. PREFIX के लिए: हर operator को इसके opening bracket के ठीक BEFORE move कीजिए + (A × (B C)) : operators अपने bracket को bracket के बजाय lead करते हैं।
  4. सभी brackets मिटा दीजिए Postfix: A B C × + Prefix: + A × B C। हो गया, कोई bracket नहीं बचता।

Theory

दो बार हल किया: bracket सब कुछ बदल देता है

A + B × C (× पहले bind करता है):

Bracketed: (A + (B × C))

Postfix: A B C × + Prefix: + A × B C

(A + B) × C (bracket + को पहले force करता है):

Bracketed: ((A + B) × C)

Postfix: A B + C × Prefix: × + A B C

दोनों postfix answers compare कीजिए: वही तीन letters, अलग story। Infix version का bracket एक अलग ordering के रूप में survive करता है, bracket के रूप में नहीं।

Think first

कागज़ पर आपकी बारी

Bracket recipe इस्तेमाल करते हुए A × (B + C) - D को postfix में convert कीजिए। पहले कागज़ पर कीजिए: पूरी तरह bracket कीजिए, operators relocate कीजिए, brackets मिटाइए। फिर tap कीजिए।

Show the answer

Precedence से पूरी तरह bracketed: ((A × (B + C)) - D)

Operators को उनके closing brackets के बाद move कीजिए:

+ (B C) के बाद → B C +

× (A ...) के बाद → A B C + ×

  • आख़िर में → A B C + × D -

Postfix: A B C + × D -

अगर आपने A B C + × D - लिखा आपके पास method है; अगर + और × swap हो गए, फिर check कीजिए कौन सा bracket पहले close होता है (innermost जीतता है)।

Quiz

A + B × C का postfix form क्या है, और यह A B + C × क्यों NAHI है?

  1. A B C × +, क्योंकि × का precedence ज़्यादा है तो B × C पहले group होता है
  2. A B + C ×, क्योंकि conversion हमेशा बाएँ से दाएँ जाता है
  3. × + A B C, क्योंकि operators front पर move करते हैं
  4. A B C + ×, क्योंकि infix expression में + पहले आता है
Show the answer

A B C × +, क्योंकि × का precedence ज़्यादा है तो B × C पहले group होता है

Precedence बाक़ी सब कुछ से पहले B × C group करता है: (A + (B × C)) → A B C × +। Option B precedence के बजाय reading order से convert करने की classic error है: A B + C × असल में मतलब है (A + B) × C, एक अलग expression। Option C PREFIX form की logic है (misapplied), और option D नए कपड़ों में left-to-right trap दोहराता है।

Watch out

जहाँ marks ग़ायब होते हैं

Precedence ignore करना killer है: A + B × C को बाएँ से दाएँ convert करना एक ग़लत answer देता है जो साफ़ LAGTA है। हमेशा पहले bracket कीजिए, फिर convert कीजिए।

Equal-precedence operators बाएँ से दाएँ जाते हैं: A - B + C ((A - B) + C) की तरह bracket होता है, कभी (A - (B + C)) नहीं।

और अपने answers label कीजिए: examiners postfix AND prefix दोनों माँगते हैं; prefix label किया एक correct postfix zero score करता है।

Formula

Stack यह काम क्यों करता है

Machine में, conversion और evaluation दोनों एक stack पर चलते हैं: operands गुज़रते हैं, operators stack पर तब तक wait करते हैं जब तक एक lower-ranked operator (या एक closing bracket) उन्हें pop नहीं करता। Postfix evaluate करना और भी simple है: एक number देखिए, push कीजिए; एक operator देखिए, दो pop कीजिए, compute कीजिए, वापस push कीजिए। Exams के लिए पूरी stack applications list: expression conversion/evaluation, function calls, undo/redo, browser back, balanced-bracket checking।

Summary

Key takeaways

  • Infix (A + B) को precedence और brackets चाहिए; postfix (A B +) और prefix (+ A B) को दोनों नहीं चाहिए।
  • Precedence: brackets, फिर ^, फिर × /, फिर + -, equal ranks बाएँ से दाएँ।
  • Recipe: पूरी तरह bracket कीजिए, operators को उनके bracket के बाद (postfix) या पहले (prefix) move कीजिए, brackets मिटाइए।
  • A + B × C → postfix A B C × +, prefix + A × B C; (A + B) × C → A B + C ×।
  • Machine एक stack से convert और evaluate करती है: operands बहते हैं, operators wait करते हैं।
  • Stack applications: expressions, call stack, undo, browser back, bracket checking।
  • Memory hook: पहले bracket कीजिए, फिर operators relocate कीजिए।

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Data Structure

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

Application areas of Stack (Infix to postfix, Infix to prefix) · Object Oriented Programming and Data Structures (OOPs & D.S.) · Gri-Learn