任何表达式都由操作数S(亦称运算对象)、操作符OP(亦称运算符)和分界符组成。假设操作数是正整数,操作符只包含加减乘除取余等五种操作符,分界符包含左右括号和表达式的起始、结束符“#”,如#(3+5)%3+(8-5)#。请根据该问题背景,选用合适的数据结构,编写一套算法完成表达式括号匹配、中缀表达式转换成后缀表达式以及表达式求解等问题。
要求
用户从键盘输入一个中缀表达式,选用合适的数据结构,判断表达式中的括号是否相匹配。如不匹配说明具体原因(如左括号多余);
选用合适的数据结构,将合法的中缀表达式转换成后缀表达式,并输出所需的后缀表达式;
选用合适的数据结构,计算后缀表达式的值并进行输出;
实现所选用数据结构的数据类型,包括其核心操作的算法。