Can you please help me identify what this problem is asking for other than the part that it is a stack? Problem 1: Use a stack implementation, to check that a given an arithmetic expression, that uses braces “{“ & ”}” or parenthesis ”(“ &, ”)” or brackets ”[“ & ”]” as grouping symbols, is using them in a matching and balanced way. The book has an example function, called isBalance( ), that takes the input string as an argument and returns 0 if it is unbalanced or 1 if it is balanced. (Examples below are given only for illustrative purposes, you may come up with your own.) Example outputs: Input: exp = "[ ( ) ] { } { [ ( ) ( ) ] ( ) }" Output: Balanced   Input: exp = "[ ( ] )" Output: Not Balanced   Expressions used to satisfy this program: 14 * (6 + 5) A - (C + B) / [12 * D] [8 + (38 - 14) - 10] + 12 ( 9 / 5 ) * celsius + 32

C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN:9781337102087
Author:D. S. Malik
Publisher:D. S. Malik
Chapter18: Stacks And Queues
Section: Chapter Questions
Problem 1TF
icon
Related questions
Question

Can you please help me identify what this problem is asking for other than the part that it is a stack?

Problem 1:

Use a stack implementation, to check that a given an arithmetic expression, that uses braces “{“ & ”}” or parenthesis ”(“ &, ”)” or brackets ”[“ & ”]” as grouping symbols, is using them in a matching and balanced way.

The book has an example function, called isBalance( ), that takes the input string as an argument and returns 0 if it is unbalanced or 1 if it is balanced.
(Examples below are given only for illustrative purposes, you may come up with your own.)

Example outputs:

Input: exp = "[ ( ) ] { } { [ ( ) ( ) ] ( ) }"

Output: Balanced

 

Input: exp = "[ ( ] )"

Output: Not Balanced

 

Expressions used to satisfy this program:

  • 14 * (6 + 5)
  • A - (C + B) / [12 * D]
  • [8 + (38 - 14) - 10] + 12
  • ( 9 / 5 ) * celsius + 32
Expert Solution
Step 1

Below is the C++ program: -

Approach: -

In the given program there are two boolean methods check_pair and isBalance. The method check_pair will return true (1) for each statement when the pair is matched otherwise returned false.

The method isBalance returns true if the stack is empty after deleting the brackets when any right bracket is found. Otherwise it returns false if the stack is already empty or the pairs of individual braces are not matched.

 

trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 2 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
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning