日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP计算表达式-栈

發布時間:2024/9/20 php 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP计算表达式-栈 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
<?php /*** 計算表達式思路* 1+2*3-2* 思路:* 1、掃描每個字符* 2、判斷是否運算符和數字* 3、數字直接進棧* 4、運算符* 1、第一個運算符直接入棧* 2、N個運算符要與之前運算符比較* 1、如果當前運算符大于棧頂的運算符* 1、從數棧取出兩個數字進行運算,其實這個就是優先級運算* 2、把結果入棧* 2、如果不大于直接入棧* 5、得到平級運算表達式* 6、遍歷運算符出棧進行運算,然后在入棧,一直到運算符為空。* @author wangdk**/ class Expression {public $numArray = array();public $operArray = array();/*** 判斷是否為數字*/public function isNumeric($str) {return is_numeric($str);}/*** 判斷是否為運算符*/public function isOperation($str) {if ($str == '+' || $str == '-') {return 1;}if ($str == '*' || $str == '/') {return 2;}return 0;}/*** 根據運算符進行運算*/public function calc($ch, $numA, $numB) {$result = 0;switch($ch) {case '+':$result = $numA + $numB;break;case '-':$result = $numB - $numA;break;case '*':$result = $numA * $numB;break;case '/':$result = $numB / $numA;break;}return $result;}/*** 掃描表達式進行入棧*/public function getResult($str) {$count = strlen($str);for ($i = 0; $i < $count; $i++) {// 數字直接入棧if ($this->isNumeric($str[$i])) {array_push($this->numArray, $str[$i]);} else {// 第一個運算符直接入棧if (empty($this->operArray)) {$this->operArray[] = $str[$i];} else {// 多個運算符開始比較,去掉優先級$operArrayCopy = $this->operArray;$prev_operation = array_pop($operArrayCopy);// 如果當前運算符號小于 上一個運算符if ($this->isOperation($str[$i]) <= $this->isOperation($prev_operation)) {// 運算$prev_operation = array_pop($this->operArray);$first_num = array_pop($this->numArray);$second_num = array_pop($this->numArray);$result = $this->calc($prev_operation, $first_num, $second_num);$this->numArray[] = $result;array_push($this->operArray, $str[$i]);} else {array_push($this->operArray, $str[$i]);}}}}// 遍歷平級運算符,進行運算$operArrayCount = count($this->operArray);while($operArrayCount) {$prev_operation = array_pop($this->operArray);$first_num = array_pop($this->numArray);$second_num = array_pop($this->numArray);$result = $this->calc($prev_operation, $first_num, $second_num);$this->numArray[] = $result;$operArrayCount = count($this->operArray);}}}$e = new Expression(); $e->getResult('1+2*3+4*8'); echo '<pre>'; print_r($e->numArray); print_r($e->operArray) ?>

轉載于:https://my.oschina.net/wangdk/blog/158787

總結

以上是生活随笔為你收集整理的PHP计算表达式-栈的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 女人被狂躁c到高潮 | 成人久久免费 | 黄色网址中文字幕 | 青青草激情视频 | 亚洲好看站 | 极品另类| a人片| 亚洲男人在线天堂 | hitomi一区二区三区精品 | 日本在线一级片 | 国产一级片久久 | 欧美亚洲韩国 | 91欧美一区二区三区 | 亚洲第一页av | 色香影视 | 国产91av在线播放 | 亚欧三级 | 欧美女同在线 | 欧洲精品久久久 | 日本一区二区三区在线观看 | xxx毛片 | 欧美日韩免费高清一区色橹橹 | 日本色悠悠| 久久国产精品无码网站 | 蜜桃臀一区二区三区 | 国产日本在线播放 | 人人干人人玩 | 91九色国产 | 无套中出丰满人妻无码 | 欧美99久久精品乱码影视 | 暧暧视频在线观看 | 国精品一区 | av.www| 亚洲第一精品在线 | 成人精品一区二区三区视频 | 女同在线视频 | 一区二区三区欧美日韩 | 日韩激情国产 | 骚虎免费视频 | 18岁毛片 | 五月婷婷六月综合 | 国产麻豆一区二区三区 | 特黄特黄视频 | 天天舔天天摸 | 日韩在线免费视频 | 2021国产精品视频 | 制服丝袜av一区二区三区下载 | 午夜精品久久久久久久久久久久 | 777777av| 亚洲制服一区二区 | a∨色狠狠一区二区三区 | 日本一区二区视频在线 | 日本乱淫视频 | 永久免费在线视频 | 亚洲中文字幕无码专区 | 噜噜色图 | 欧美久久久久久久久久久久 | 影音先锋黑人 | 丝袜福利视频 | av影院在线观看 | 正在播放adn156松下纱荣子 | 国产午夜在线观看 | 国产毛片一区二区三区va在线 | 色男人的天堂 | 日本免费专区 | 午夜免费小视频 | 日本黄在线观看 | 织田真子作品 | av在线天堂网 | 亚洲天堂一区二区三区 | 亚洲精品欧洲 | 法国空姐在线观看视频 | 朝鲜美女黑毛bbw | 加勒比av在线播放 | 肉丝肉足丝袜一区二区三区 | av网站在线看 | 久久精品亚洲一区二区 | 色综合色综合网色综合 | 激情小说激情视频 | 伊人射 | 免费在线成人 | 久久精品天天中文字幕人妻 | 东北高大丰满bbbbzbbb | 少妇久久久久久被弄到高潮 | av永久免费观看 | 又紧又大又爽精品一区二区 | 亚洲一区二区在线看 | 婷婷开心激情网 | 色一五月 | 超碰在线观看av | 牛牛影视一区二区 | 全程偷拍露脸中年夫妇 | 午夜色播 | 久久久久久久久久久久电影 | 老汉av在线 | 欧美一区二区三区啪啪 | 成人免费视频一区二区 | 精品无码久久久久久久久成人 | 日韩人妻一区二区三区蜜桃 |