deanfamily wrote:
I have a rather pecurliar C++ assignment. I need to create a program (using a stack or queue) to verify if the grouping symbols in an arithmetic expression match. For example:
{25 + (3 - 6) * 8}
In this case they match (one corresponding left and right bracket for both). In this case:
(25 + (3 - 6} * 8)
they don't match (there is a } that should be a )). If anyone can give me an idea or something to get me heading in the correct direction, I'd appreciate it.
Please note: I HAVE to use a stack or queue.
OK, here's a hint. A stack is LIFO (last in, first out). A queue is
FIFO (first in, first out). When you analyze an arithmetic expression,
and you come across, say, a right parenthesis, do you look at the most
recent symbol you came across (that is, the last thing you added) or
the first symbol you came across (that is, the first thing you added)?
And this isn't a peculiar C++ assignment - sounds like a pretty typical
introductory assignment to me. And a fairly easy one, once you think
it through.
Best regards,
Tom