真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JavaScript數(shù)據(jù)結(jié)構(gòu)中棧應(yīng)用之表達(dá)式求值的示例分析

這篇文章給大家分享的是有關(guān)JavaScript數(shù)據(jù)結(jié)構(gòu)中棧應(yīng)用之表達(dá)式求值的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)建站是專業(yè)的武隆網(wǎng)站建設(shè)公司,武隆接單;提供成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行武隆網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

具體如下:

下面來談一個比較經(jīng)典的表達(dá)式求值問題,這個問題主要是設(shè)計(jì)到操作符的優(yōu)先級。我們通??吹降谋磉_(dá)式都是中綴表達(dá)式,存在很多優(yōu)先級差別,而后綴表達(dá)式則沒有這些優(yōu)先級問題。下面先看看兩種表達(dá)式的區(qū)別。

     中綴表達(dá)式:a*b+c*d-e/f
     后綴表達(dá)式:ab*cd*+ef/-

從中綴表達(dá)式轉(zhuǎn)換到后綴表示式是很難實(shí)現(xiàn)的,我們這里可以通過棧的思想來實(shí)現(xiàn)。下面進(jìn)行詳細(xì)的介紹是什么樣的思想:

在對一個中綴表示式進(jìn)行轉(zhuǎn)換的時候,遇到非操作符的字符則直接保存到后綴表示式的存儲空間中。

遇到(,則壓入棧,只有遇到對應(yīng)的)才能被彈出。
遇到),就將(之前的操作符全部彈出,并保存到存儲空間。
遇到*和/這樣優(yōu)先級高的,就判斷棧中的操作符優(yōu)先級是否低于當(dāng)前操作符。
如果棧中的遇到的低,則將遇到的繼續(xù)入棧;如果棧中的高,則將棧中的出棧,遇到的入棧。
最后,當(dāng)字符串遍歷完成,依次彈出操作符,保存到存儲空間。

為了方便理解,將上面的例子再次講解。a*b+c*d-e/f

首先是ab被保存到了存儲空間,然后*入?!,F(xiàn)在棧中只有*。
遇到+之后,由于*比+優(yōu)先級高,所以*出棧,+入棧,這樣存儲空間變?yōu)閍b*,棧中變?yōu)?。
再時候遇到c,存儲空間變?yōu)閍b*c,棧中還是+。
接下來遇到*和d,由于+比*低,所以*繼續(xù)入棧,棧中表為了+*,存儲空間為ab*cd。
之后遇到-,由于*比-高,所以+*出棧,-入棧,存儲空間變?yōu)閍b*cd*+
……后面不用解釋了,悟性再低也應(yīng)該會了。

下面我們用JavaScript代碼來實(shí)現(xiàn)下吧。



 
  
  
 
 

 function midTOLast(a){
  var a_len=a.length;
  var myArray=new Array();
  b='';
  for(var i=0;i
 

當(dāng)然,以上程序還存在一點(diǎn)bug,但是思想應(yīng)該就是這樣子的。

下面,我們將講解如何通過后綴表達(dá)式計(jì)算出表達(dá)式的結(jié)果。

那么,我們將中綴表達(dá)式轉(zhuǎn)化為后綴表達(dá)式后,如何繼續(xù)計(jì)算呢?還是以這個例子為例。

     中綴表達(dá)式:a*b+c*d-e/f
     后綴表達(dá)式:ab*cd*+ef/-

基本思路如下:

遍歷后綴表達(dá)式,遇到非操作符的字符則直接進(jìn)棧,遇到操作符則出棧兩個元素,進(jìn)行對應(yīng)操作,然后將得到的結(jié)果再次入棧。依次直到遍歷完成,此處棧中保存的值就是當(dāng)前表達(dá)式的值。

實(shí)現(xiàn)的JavaScript代碼如下:



 
  
  
 
 

 function getValue(a){
  var a_len=a.length,
   myArray=new Array();
   for(var i=0;i
 

感謝各位的閱讀!關(guān)于“JavaScript數(shù)據(jù)結(jié)構(gòu)中棧應(yīng)用之表達(dá)式求值的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!


分享文章:JavaScript數(shù)據(jù)結(jié)構(gòu)中棧應(yīng)用之表達(dá)式求值的示例分析
文章網(wǎng)址:http://weahome.cn/article/jdsdds.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部