栈的应用举例:数制转换,表达式求值

如题所述

关于表达式的分析与求值是计算机软件专业中“编译原理”课程极其重要的部分,主要用于最初的词法分析。其表示方式有:前缀、中缀、后缀表示法。其数据结构可以使用一个堆栈来表示。具体的实现代码,我以前使用的书籍是《C语言大全》,那上面就有完整的、现成的代码,可以供你参考运行。同时你还可以参考《编译原理》相关的教材。
但是由于我已经很久没有编写编译原理方面的程序了,况且编写并亲自调试通过该程序,难度还是比较大的。所以我也无法亲自给你编写一个完整表达式分析与求值的程序。只能够给你提供一些思路和线索。
另外,关于不同数制之间的转换问题,这个倒是不难解决,可以采用通常的算法就是短除法,然后将每一次的余数采取“倒排”即可。例如:将十进制的 15 转换为二进制。
2|15(1
--
2|7(1
-
2|3(1
-
2|1(1

-
0
则十进制的 15 为二进制的:1111。
温馨提示:答案为网友推荐,仅供参考