麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > PHP > 正文

PHP計算后序表達式(逆波蘭式)

2020-03-22 20:12:45
字體:
來源:轉載
供稿:網友
  • 百度谷歌搜索無果,之好自己造一次輪子。

    function rpn2html' target='_blank'>value($str){    $arr = explode(',',$str);    $stack = array();    $len = count($arr);    for($i=0;$i<$len;$i++){        if(is_numeric($arr[$i])){            array_push($stack,$arr[$i]);        }else{            $op = $arr[$i];            $right = array_pop($stack);            $left = array_pop($stack);            eval("/$re = $left $op $right;");            array_push($stack,$re);        }       }    return $stack[0];}

    使用方法:

    $str = "1,2,3,+,*,4,-,5,+,7,*";echo rpn2value($str);

    另附中序轉后序代碼,版權歸原作者所有


    /** * math_rpn * * 實現逆波蘭式算法 * * @author   sparkHuang [email protected] * @version  RPN 1.0.0 * */class math_rpn {    //初始的計算表達式    private $_expression = '';    //處理后的逆波蘭表達式    private $_rpnexp = array();    //模擬棧結構的數組 www.it165.net    private $_stack  = array('#');    //正則判斷    //private $_reg    = '/^([A-Za-z0-9/(/)/+/-/*//])*$/';    //優先級    private $_priority = array('#' => 0, '(' => 10, '+' => 20, '-' => 20, '*' => 30, '/' => 30);    //四則運算    private $_operator = array('(', '+', '-', '*', '/', ')');    public function __construct($expression) {        $this->_init($expression);    }    private function _init($expression) {        $this->_expression = $expression;    }    public function exp2rpn() {        $len = strlen($this->_expression);        for($i = 0; $i < $len; $i++) {            $char = substr($this->_expression, $i, 1);            if ($char == '(') {                $this->_stack[] = $char;                continue;            } else if ( ! in_array($char, $this->_operator)) {                $this->_rpnexp[] = $char;                continue;            } else if ($char == ')') {                for($j = count($this->_stack); $j >= 0; $j--) {                    $tmp = array_pop($this->_stack);                    if ($tmp == "(") {                        break;                    } else {                        $this->_rpnexp[] = $tmp;                    }                }                continue;            } else if ($this->_priority[$char] <= $this->_priority[end($this->_stack)]) {                $this->_rpnexp[] = array_pop($this->_stack);                $this->_stack[]  = $char;                continue;            } else {                $this->_stack[] = $char;                continue;            }        }        for($i = count($this->_stack); $i >= 0; $i--) {            if (end($this->_stack) == '#') break;            $this->_rpnexp[] = array_pop($this->_stack);        }        return $this->_rpnexp;    }}//測試實例$expression = "(A*(B+C)-E+F)*G";var_dump($expression);$mathrpn = new math_rpn($expression);var_dump($mathrpn->exp2rpn());

    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 国产免费传媒av片在线 | 成人免费毛片片v | 成人毛片免费在线 | 一级做a爱片久久毛片a高清 | 国产欧美在线一区二区三区 | 国产一区二区三区视频观看 | 91精品国产综合久久婷婷香蕉 | 精品久久一区二区 | 国产成人av一区 | 性高潮一级片 | 精品一区二区三区在线观看国产 | 一区二区久久久久草草 | 日本在线不卡一区二区 | 欧美一区二区三区久久精品视 | 国产亚洲欧美日韩在线观看不卡 | 在线观看国产www | 欧美三级一级 | 久久久久久免费 | 天天色人人爱 | 国产免费福利视频 | 少妇一级淫片高潮流水电影 | 成人男女啪啪免费观看网站四虎 | 国产精品久久久久久久不卡 | 视频在线91| 在线免费av观看 | 九色中文 | 欧美成网| 9191色 | 亚洲一区二区不卡视频 | 国产精品av久久久久久网址 | 欧美18videos性处按摩 | av免费在线网 | 91重口视频 | 国产88久久久国产精品免费二区 | 亚洲第一视频在线 | 亚洲一区二区三区视频 | 午夜影院日韩 | 线观看免费完整aaa 一二区成人影院电影网 | 国产成人精品无人区一区 | 天天碰天天操 | 国产精品久久久久影院老司 |