converting infix to postfix 1. if you encounter an operand, append it to the output string postfixExp 2. if you encounter a "(", push it onto the stack 3. if you encounter an operator: 1. if the stack is empty, push it onto the stack a-(b+c*d)/e 2. else, peek at the stack. if it is an operator of greater or equal precedence, pop it from the stack and append it to postfixExp. keep peeking/popping until you encounter either a "(" or an operator of lower precedence, or the stack becomes empty. then, push the operator onto the stack 4. if you encounter a ")", pop operators off the stack and append them to postfixExp until you encounter the "(". pop off the "(" stack 5. if you encounter the end of the string, pop off remaining stack operators and append them to postfixExp abc postfixExp postfix calculator |// calculate a string containing postfix expression |// at loop end, the result will be at the top of the stack 234 + * for (each character ch in the string) { if (ch is an operand) stack.push(ch) else // ch is an operator named op { // compute result of applying operator to the top // two elements and push result on stack operand stack.pop() operandl = stack.peek() stack.pop() = stack.peek () result = operandl op operand2 stack.push (result) stack result operand1 operand2

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question
converting infix to postfix
1. if you encounter an operand, append it to the output string
postfixExp
2. if you encounter a "(", push it onto the stack
3. if you encounter an operator:
1. if the stack is empty, push it onto the stack
a-(b+c*d)/e
2. else, peek at the stack. if it is an operator of greater or
equal precedence, pop it from the stack and append it to
postfixExp. keep peeking/popping until you encounter
either a "(" or an operator of lower precedence, or the
stack becomes empty. then, push the operator onto the
stack
4. if you encounter a ")", pop operators off the stack and append
them to postfixExp until you encounter the "(". pop off the
"("
stack
5. if you encounter the end of the string, pop off remaining stack
operators and append them to postfixExp
abc
postfixExp
Transcribed Image Text:converting infix to postfix 1. if you encounter an operand, append it to the output string postfixExp 2. if you encounter a "(", push it onto the stack 3. if you encounter an operator: 1. if the stack is empty, push it onto the stack a-(b+c*d)/e 2. else, peek at the stack. if it is an operator of greater or equal precedence, pop it from the stack and append it to postfixExp. keep peeking/popping until you encounter either a "(" or an operator of lower precedence, or the stack becomes empty. then, push the operator onto the stack 4. if you encounter a ")", pop operators off the stack and append them to postfixExp until you encounter the "(". pop off the "(" stack 5. if you encounter the end of the string, pop off remaining stack operators and append them to postfixExp abc postfixExp
postfix calculator
|// calculate a string containing postfix expression
|// at loop end, the result will be at the top of the stack 234 + *
for (each character ch in the string)
{
if (ch is an operand)
stack.push(ch)
else // ch is an operator named op
{
// compute result of applying operator to the top
// two elements and push result on stack
operand
stack.pop()
operandl = stack.peek()
stack.pop()
= stack.peek ()
result =
operandl op operand2
stack.push (result)
stack
result
operand1 operand2
Transcribed Image Text:postfix calculator |// calculate a string containing postfix expression |// at loop end, the result will be at the top of the stack 234 + * for (each character ch in the string) { if (ch is an operand) stack.push(ch) else // ch is an operator named op { // compute result of applying operator to the top // two elements and push result on stack operand stack.pop() operandl = stack.peek() stack.pop() = stack.peek () result = operandl op operand2 stack.push (result) stack result operand1 operand2
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps with 1 images

Blurred answer
Knowledge Booster
Stack
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education