青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

飛天

快樂的生活......

 

表達(dá)式計(jì)算(不轉(zhuǎn)換成后綴表達(dá)式)

       昨天晚上沒事,把《數(shù)據(jù)結(jié)構(gòu)》書拿出來看,在堆棧那一章里面,講到使用堆棧來實(shí)現(xiàn)表達(dá)式求值。步驟是先將表達(dá)式轉(zhuǎn)換為后綴表達(dá)式,在對后綴表達(dá)式處理。
        今天在公司沒事,也寫了個表達(dá)式計(jì)算。不需要轉(zhuǎn)換成后綴,可以直接計(jì)算。大概的算法是:生成兩個棧,一個是用來存放數(shù)值,一個用來放操作符。如果操作符大于棧頂符號的優(yōu)先值,則取出數(shù)值和操作符進(jìn)行計(jì)算。將計(jì)算的結(jié)果放到數(shù)值棧中。如果是‘)’,則要計(jì)算直到符號棧中為‘(’。好象講的不清楚,還是看程序。
#include "StdAfx.h"

#include 
".\calculate.h"
calculate::calculate()
{
    
//初始化優(yōu)先級
    map_priority['+']=1;
    map_priority[
'-']=1;

    map_priority[
'*']=2;
    map_priority[
'/']=2;

    map_priority[
'(']=3;
    map_priority[
')']=3;
}


calculate::
~calculate(void)
{

}

//開始
void calculate::Run(void)
{
    
char sign;
    
double num;
    
double num1,num2;
    cin
>>sign;
    
while(sign!='=')
    
{
        
if(isSign(sign))  //sign是符號
        {
            
if(sign==')')
            
{
                
//如果是')'操作符,則計(jì)算橨直到'('
                calculatestack('(');
            }

            
else
            
{
                
//比較操作符優(yōu)先級
                
//如果操作符大於橨蝢的操作符優(yōu)先級,則入橨,否則計(jì)算.
                if(stack_sign.size()==0||get_priority(sign)>get_priority(stack_sign.top()))
                
{
                    
//操作符入欑
                    stack_sign.push(sign);
                }

                
else
                
{        
                    
char ch=stack_sign.top();
                    
if(ch!='(')
                    
{
                        stack_sign.pop();
                        num2
=stack_pop();
                        num1
=stack_pop();
                        stack_numeral.push(Calculate(num1,num2,ch));
//將計(jì)算的值重新入橨
                    }

                    stack_sign.push(sign);
                }

            }

        }

        
else
        
{
            cin.putback(sign);
            cin
>>num;
            stack_numeral.push(num);
        }

        cin
>>sign;
    }

    
//計(jì)算橨內(nèi)剩余操作符
    calculatestack();

    cout
<<stack_numeral.top()<<endl;
    system(
"PAUSE");
}

//是否是操作符
bool calculate::isSign(char sign)
{
    
if(map_priority.find(sign)==map_priority.end())
        
return false;
    
else
        
return true;
}

// 優(yōu)先級大小
int calculate::get_priority(char sign)
{
    
return map_priority[sign];
}


double calculate::Calculate(double &num1,double &num2,char & sign)
{
    
double temp;
    
switch(sign)
    
{
    
case '+':
        temp
=num1+num2;
        
break;
    
case '-':
        temp
=num1-num2;
        
break;
    
case '*':
        temp
=num1*num2;
        
break;
    
case '/':
        temp
=num1/num2;
        
break;
    }

    
return temp;
}

//計(jì)算橨直到操作符是sign
void calculate::calculatestack(char sign)
{
    
char ch;
    
double num1,num2;
    ch
=stack_sign.top();
    stack_sign.pop();
    
while(ch!=sign)
    
{
        num2
=stack_pop();
        num1
=stack_pop();
        stack_numeral.push(Calculate(num1,num2,ch));
//將計(jì)算的值重新入橨
        if(stack_sign.size()==0//如果為空
            break;
        ch
=stack_sign.top();
        stack_sign.pop();
    }

}

//數(shù)值出橨
double calculate::stack_pop()
{
    
double n;
    
if(stack_numeral.size()==0)
        
return 0;
    
else
        n
=stack_numeral.top();
    stack_numeral.pop();
    
return n;

}

文件頭

posted on 2007-10-30 16:50 飛天 閱讀(435) 評論(0)  編輯 收藏 引用 所屬分類: 算法描述

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(2)

隨筆分類

隨筆檔案

文章分類

文章檔案

Blogs

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲伦伦在线| 国产亚洲一本大道中文在线| 亚洲国产一区二区三区a毛片| 亚洲国产日韩在线| 在线不卡中文字幕| 亚洲国产精品久久91精品| 精品电影在线观看| 在线免费观看日本欧美| 亚洲日本中文| 欧美va亚洲va国产综合| 亚洲欧美日本国产专区一区| 欧美一级淫片aaaaaaa视频| 国产欧美一区二区三区久久人妖 | 小黄鸭精品aⅴ导航网站入口| 99视频有精品| 亚洲午夜电影在线观看| 午夜精品国产更新| 亚洲第一免费播放区| 亚洲国产视频直播| 在线亚洲电影| 久久久久久亚洲精品中文字幕| 另类国产ts人妖高潮视频| 欧美黄色影院| 亚洲一区二区在线| 久久综合伊人| 一区二区三区欧美亚洲| 欧美主播一区二区三区美女 久久精品人 | 欧美在线视频免费| 美女在线一区二区| 一区二区三区国产精品| 久久久亚洲高清| 欧美三级特黄| 亚洲欧洲在线视频| 久久xxxx精品视频| 亚洲日本乱码在线观看| 亚洲午夜羞羞片| 欧美chengren| 国产一级一区二区| 亚洲欧美国产精品va在线观看| 欧美成人国产一区二区| 亚洲一区欧美一区| 欧美日韩视频免费播放| 亚洲福利视频二区| 久久不射中文字幕| 欧美成人r级一区二区三区| 99亚洲精品| 久久美女性网| 国内外成人免费激情在线视频| 亚洲一区二区少妇| 亚洲高清在线观看| 久热精品在线| 亚洲二区在线| 久久久人成影片一区二区三区观看 | 亚洲婷婷在线| 欧美区高清在线| 亚洲黄一区二区三区| 狂野欧美激情性xxxx| 亚洲男同1069视频| 国产精品成人免费精品自在线观看| 亚洲国产精品一区在线观看不卡| 欧美一区二区三区婷婷月色 | 欧美剧在线观看| 亚洲人成啪啪网站| 欧美成人激情在线| 久久综合久久久| 亚洲丰满在线| 农夫在线精品视频免费观看| 久久久久国色av免费看影院 | 欧美精品一区二区三区蜜臀| 亚洲国产精品视频| 欧美国产三区| 欧美成人dvd在线视频| 亚洲片在线观看| 亚洲欧洲一区二区在线播放| 欧美日韩视频在线| 亚洲综合电影一区二区三区| 一区二区三区 在线观看视| 国产精品久久久久久久久搜平片 | 最新日韩中文字幕| 亚洲人成免费| 欧美日韩中文在线| 欧美一区二区三区精品| 久久久国际精品| 日韩亚洲视频| 午夜视频精品| 亚洲国产欧美在线| 亚洲三级免费电影| 国产亚洲欧美日韩精品| 欧美大片免费观看| 欧美日本三级| 久久国产色av| 你懂的视频一区二区| 一区二区三区成人| 香蕉久久夜色精品国产使用方法| 激情丁香综合| 日韩视频在线观看| 韩国三级电影一区二区| 亚洲人线精品午夜| 国产欧美日韩视频在线观看| 欧美国产日韩xxxxx| 欧美视频手机在线| 免费成人黄色av| 国产精品毛片a∨一区二区三区|国| 久久亚洲欧洲| 国产精品成人久久久久| 免费观看一级特黄欧美大片| 亚洲美女精品久久| 亚洲国产你懂的| 91久久久精品| 精品99一区二区三区| 亚洲国产精品日韩| 欧美99久久| 免费成人黄色av| 美女999久久久精品视频| 亚洲级视频在线观看免费1级| 亚洲香蕉视频| 久久躁狠狠躁夜夜爽| 国产精品日韩精品欧美在线| 一本到12不卡视频在线dvd | 国产精品日韩欧美大师| 一本久久知道综合久久| 欧美不卡福利| 欧美成人免费小视频| 一区在线免费| 欧美黄在线观看| 亚洲一二三四区| 99精品视频网| 国产一区二区| 欧美精品久久久久久久久老牛影院| 欧美在现视频| 好看的亚洲午夜视频在线| 午夜精品视频网站| 欧美国产日韩视频| 久久露脸国产精品| 一二三区精品福利视频| 国产一区二区精品久久91| 久久婷婷丁香| 夜夜爽夜夜爽精品视频| 亚洲国产成人久久综合| 欧美亚州韩日在线看免费版国语版| 亚洲欧美日本另类| 亚洲国产欧美在线人成| 亚洲国产日韩一区| 欧美一区二区三区婷婷月色| 在线视频欧美日韩精品| 亚洲精品免费在线播放| 久久久噜噜噜久久| 久久久久综合网| 久久深夜福利免费观看| 免费不卡亚洲欧美| 亚洲日韩欧美视频| 亚洲作爱视频| 欧美一区二区观看视频| 久久国产精品一区二区三区| 久久国产福利国产秒拍| 久久乐国产精品| 欧美日韩免费一区| 亚洲国产高清aⅴ视频| 一区二区三区波多野结衣在线观看| 伊人成人开心激情综合网| 国产在线一区二区三区四区| 韩国av一区二区三区在线观看| 亚洲成色777777在线观看影院| 尤物精品在线| 久久免费视频这里只有精品| 亚洲国产精品久久久久秋霞影院| 亚洲视频在线观看| 羞羞答答国产精品www一本| 亚洲精品在线观| 一区二区三区久久| 中文精品在线| 一区二区国产日产| 91久久精品国产91久久| 亚洲精品一二区| 国产精品国产一区二区| 久久久久久伊人| 亚洲一级片在线观看| 欧美一区二区精美| 欧美一级在线亚洲天堂| 夜夜嗨av一区二区三区网页| 在线亚洲伦理| 欧美亚洲成人网| 狠狠色丁香婷综合久久| 国产亚洲欧美另类中文 | 久久国产精品99国产| 国产精品久久婷婷六月丁香| 国产欧美日韩精品a在线观看| 老司机免费视频一区二区三区| 午夜精品久久久久久久99樱桃| 一本色道久久综合亚洲精品不| 久久久久久久欧美精品| 久久av一区二区三区漫画| 欧美激情一区在线| 欧美日韩一区二区三区免费| 欧美午夜精品电影| 国产精品国产a级| 狠狠色狠色综合曰曰| 欧美视频四区| 国产性天天综合网| 中文国产亚洲喷潮|