Nor*_*sey 13
我在这里假设你的意思是有效的是执行代码永远不会使堆栈下溢并在堆栈上留下一个值.如果你有更严格的有效性概念,你需要一个更复杂的检查器.
如果要检查此类有效性,则无需评估字符串,您可以使用计数器,而不是堆栈.计数器跟踪您评估时堆栈上的值的数量.为简化起见,假设您只有文字,二元运算符和一元运算符.此算法使用特殊的递减操作:如果递减时,计数器低于零,则字符串无效:
小智 5
后缀表达式有效当且仅当:
1) 前两个元素是操作数(值),并且
2) 最后一个元素是一个运算符,并且
3) 对于每 n 个值,有 n-1 个运算符,并且
4) 在 n 个元素的列表中,从索引 i = 0 开始,对于 i < n-1 (倒数第二个元素),每组由 k 个值组成的元素(对于 k > 1 )后面跟着 (k-1 ) 运算符。当 k = 1 时,后面的运算符数量 = k = 1。
| 归档时间: |
|
| 查看次数: |
10328 次 |
| 最近记录: |