
Concept explainers
Write a C++ program that uses stacks to evaluate an arithmetic expression in infix notation without converting it into postfix notation.
The program takes as input a numeric expression in infix notation, such as 3+4*2, and outputs the result.
1) Operators are +, -, *, /
2) Assume that the expression is formed correctly so that each operation has two arguments.
3) The expression can have parenthesis, for example: 3*(4-2)+6.
4) The expression can have spaces in it, for example: 3 * (4-2) +6 .
Here are some useful functions that you may need:
char cin.peek(); -- returns the next character of the cin input stream ( without reading it)
bool isdigit(char c); -- returns true if c is one of the digits ‘0’ through ‘9’, false otherwise
cin.ignore(); -- reads and discards the next character from the cin input stream
cin.get(char &c); -- reads a character in c ( could be a space or the new line )
Please identify the stack.h, stack.cpp and main cpp.

Trending nowThis is a popular solution!
Step by stepSolved in 3 steps with 2 images

- C++arrow_forwardC++ Create a program that reads a simple arithmetic expression and evaluates it. More precisely, the program reads from the user a line of text that’s supposed to contain two numbers separated by an arithmeticoperator, as in: 35.6 + 12 The program then prints back the expression and its value, as in: 35.6 + 12 = 47.6 The program should verify that the input line contains two numbers, one operator and nothing else. There can be whitespace before the first number, after the second number and between each number and the operator.The operator can be either +, −, *, or /. In case of an error, the program should print: "Invalid expression" and quit.When the program prints the expression, there should be no whitespacebefore the first number and there should be exactly one blank space beforeand after the operator and the equal sign.Use string streams.arrow_forwardIn C/C++, True or False: A function that changes the value of a variable passed by reference also changes the value of the original variable. A variable's type helps define the amount of memory it takes to hold a value of that type.arrow_forward
- C++ Programarrow_forwardC++arrow_forwardPlease modify the C++ data structure program below to detect and display multiple candidates with the same number of votes: multiple winners, multiple candidates with the second highest number of votes, multiple candidates with the third highest number of votes, and so on. Suppose the candidates are A, B, C, D, E, F and G and their votes are: A 100 B 200 C 200 D 400 E 100 F 400 G 300 H 300 Then your program should display, A Fourth Place B Third Place C Third Place D First Place E Fourth Place F First Place G Second Place H Second Place with the amount of votes they received, for example: A Fourth Place with 100 votes, B Third Place with 200 votes, C Third Place with 200 and etc. Text file names and program below. Thank you. votes.txt Johnson Miller Robinson Duffy Asthon Sampson Adams Williams ________________________________________________________________________________ #include <array> #include <cassert> #include <cmath> #include…arrow_forward
- C programmingarrow_forwardWrite the following in C++arrow_forwardC++ Write a program that takes as input an arithmetic expression followed by a semicolon ;. The program outputs whether the expression contains matching grouping symbols. For example, the arithmetic expressions {25 + (3 – 6) * 8} and 7 + 8 * 2 contains matching grouping symbols. However, the expression 5 + {(13 + 7) / 8 - 2 * 9 does not contain matching grouping symbols. If the expression contains matching grouping symbols, the program output should contain the following text: Expression has matching grouping symbol If the expression does not contain matching grouping symbols, the program output should contain the following text: Expression does not have matching grouping symbols.arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education





