php逆波兰表达式,逆波兰表达式计算,该如何解决 - array_unshift

58e8d81c4a0d115f2a9f9f245fa77d87.png

...(即第一个元素)该如何操作呢?使用php内置函数 array_unshift ,下面就将 array_unshift 这个函数的用法列举一下。array_unshift该函数的作用是在数组开头插入一个或多个元素。被加上的元素作为一个整体添加,这些添加的...

逆波兰表达式计算

最近在整理资料时发现了一些以前收藏的有趣代码

计划逐步将他们移植到 PHP 供有兴趣的人参考

PHP code/** * 逆波兰表达式计算 * 中缀转后缀 **/function postfix($infix) { $priority = array( //算符优先级 '+' => 1, '-' => 1, '*' => 2, '/' => 2, '(' => 0, ')' => 0, '.' => 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0 ); $stack = array(); //符号栈 $data = array(); //数值栈 $i = $top = 0; $last = -1; $len = strlen($infix); while($i= $priority[$infix{$i}]) { postfix_callback(array_shift($stack), $data); } array_unshift($stack, $infix{$i}); break; case ')': if($t != '') array_unshift($data, $t); $t = ''; while($stack[0] != '(') { postfix_callback(array_shift($stack), $data); } array_shift($stack); break; default: if($i > $last+1 && $t != '') { array_unshift($data, $t); $t = ''; } $t .= $infix{$i}; $last = $i; break; } $i++; } while($stack) { postfix_callback(array_shift($stack), $data); } return $data[0];}/** * postfix 的工作函数 * 用于计算表达式的值 **/function postfix_callback($ch, &$data) { $b = array_shift($data); switch($ch) { case '+': $data[0] += $b; break; case '-': $data[0] -= $b; break; case '*': $data[0] *= $b; break; case '/': $data[0] /= $b; break; }}测试例PHP codeecho postfix( '(2+3)*(3+4)' ); //out 35

------解决方案--------------------

先回贴在看

------解决方案--------------------

这个好东西。

------解决方案--------------------

前排占座, 板主老大给力.

------解决方案--------------------

前排占座, 板主老大给力.

...(即第一个元素)该如何操作呢?使用php内置函数 array_unshift ,下面就将 array_unshift 这个函数的用法列举一下。array_unshift该函数的作用是在数组开头插入一个或多个元素。被加上的元素作为一个整体添加,这些添加的...

...e(int low,int high[,int step]) low最小数,high最高数,step步长 int array_unshift(a4. php数组函数序列之array_unshift() 在数组开头插入一个或多个元素_PHP教程简介:php数组函数序列之array_unshift

...来操作,要不就插入到后面了,下面我们分享一个实用的array_unshift()函数,它可以解决一切问题。

先不说什么先看实例#1 array_unshift() example

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值