欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

逆波蘭表達(dá)式的實(shí)現(xiàn)

  一般情況下表達(dá)式是由操作數(shù)和運(yùn)算符組成,例如算數(shù)表達(dá)式中通常將運(yùn)算符放在兩個(gè)操作數(shù)中間,譬如a+b的形式,這種形式稱為中綴表達(dá)式,那么問題來了,是否有后綴表達(dá),前綴表達(dá)式呢???

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

   

對(duì),沒錯(cuò),這些后綴表達(dá),前綴表達(dá)式都是由波蘭數(shù)學(xué)家Jan Lukasiewicz提出來的

把運(yùn)算符寫在操作數(shù)之前,稱為波蘭表達(dá)式(Polish Expression)或前綴表達(dá)式(Prefix Expression),如+AB;

把運(yùn)算符寫在操作數(shù)之后,稱為逆波蘭表達(dá)式(Reverse Polish Expression)或后綴表達(dá)式(Suffix Expression),如AB+;

逆波蘭表達(dá)式的實(shí)現(xiàn)

    假如我們有一個(gè)表達(dá)式,應(yīng)該如何求它的值呢?在這里棧就派上用場了,由于操作數(shù)在操作符前邊,所以按順序遍歷這個(gè)表達(dá)式,遇到操作數(shù)的時(shí)候就進(jìn)棧,遇到操作符的時(shí)候就讓離操作符最近的兩個(gè)操作數(shù)出棧,并參加運(yùn)算,然后將運(yùn)算結(jié)果壓入棧中。過程如下圖所示:

逆波蘭表達(dá)式的實(shí)現(xiàn)

要編寫逆波蘭表達(dá)式求解函數(shù),就要將一個(gè)逆波蘭式當(dāng)做一個(gè)數(shù)組去處理,而且這個(gè)數(shù)組應(yīng)該是一個(gè)結(jié)構(gòu)體數(shù)組,每個(gè)數(shù)組元素包含兩個(gè)內(nèi)容,一個(gè)是數(shù)組元素的類型(操作數(shù)類型還是操作符類型),一個(gè)是這個(gè)類型對(duì)應(yīng)的值。

 今天就暫且實(shí)現(xiàn)一下后綴表達(dá)式吧,在這里運(yùn)用枚舉,能夠更清晰的表達(dá)哦

#define _CRT_SECURE_NO_WARNINGS 1

#include<iostream>

#include<stack>

#include<assert.h>

using namespace std;

enum Type

{

OP_NUM,

OP_SYMBOL,

};

enum SYMBOL

{

ADD,

SUB,

MUL,

DIV,

};

//定義一個(gè)結(jié)構(gòu)體數(shù)組包括數(shù)組的類型和數(shù)組的值

struct Cell

{

Type _type;

int _value;

};

//逆波蘭表達(dá)式計(jì)算函數(shù)

int CountRNP(Cell a[],size_t size)

{

stack <int> s;

//若函數(shù)參數(shù)一定不能為空的條件下必須用斷言

assert(a);

for(size_t i=0;i<size;i++)

{//數(shù)組里邊的元素若為數(shù)值,則直接壓入棧中

if(a[i]._type==OP_NUM)

{

s.push(a[i]._value);

}

//若數(shù)組里邊的元素不是值,而是運(yùn)算符,則將離運(yùn)算符最近的兩個(gè)元素出棧,進(jìn)行運(yùn)算

else

{

int right=s.top();

s.pop();

int left=s.top();

s.pop();

switch(a[i]._value)

{

case ADD:

s.push(left+right);

break;

case SUB:

s.push(left-right);

break;

case MUL:

s.push(left*right);

break;

case DIV:

s.push(left/right);

break;

default:

break;

}

}

}

return s.top();

}

int main()

{

Cell a[]={{OP_NUM, 12},{OP_NUM, 3},{OP_NUM, 4},

         {OP_SYMBOL,ADD},{OP_SYMBOL,MUL},

 {OP_NUM, 6},{OP_SYMBOL,SUB},{OP_NUM, 8},{OP_NUM, 2},

         {OP_SYMBOL,DIV},{OP_SYMBOL,ADD}};

size_t size =sizeof(a)/sizeof(Cell);

cout<<CountRNP(a, size)<<endl;

system("pause");

return 0;

}


運(yùn)行結(jié)果:

逆波蘭表達(dá)式的實(shí)現(xiàn)

網(wǎng)站題目:逆波蘭表達(dá)式的實(shí)現(xiàn)
文章路徑:http://chinadenli.net/article38/joispp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、動(dòng)態(tài)網(wǎng)站App開發(fā)、域名注冊、網(wǎng)站營銷搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
尤物天堂av一区二区| 国产日韩欧美在线亚洲| 亚洲国产精品久久琪琪| 91欧美视频在线观看免费| 精品al亚洲麻豆一区| 国产精品日本女优在线观看| 久久精品一区二区少妇| 国产大屁股喷水在线观看视频| 久热久热精品视频在线观看| 中文字幕一区二区久久综合| 熟女乱一区二区三区四区| 欧美成人精品国产成人综合| 香蕉尹人视频在线精品| 国产熟女一区二区精品视频| 欧美午夜性刺激在线观看| 欧美二区视频在线观看| 久久99亚洲小姐精品综合| 91日韩欧美中文字幕| 国产户外勾引精品露出一区| 翘臀少妇成人一区二区| 日韩人妻毛片中文字幕| 国产黄色高清内射熟女视频| 91日韩欧美中文字幕| 亚洲精品美女三级完整版视频| 蜜桃av人妻精品一区二区三区| 激情亚洲内射一区二区三区| 日韩人妻中文字幕精品| 欧美日韩国产精品第五页| 欧美黑人在线精品极品| 日韩色婷婷综合在线观看| 欧美二区视频在线观看| 亚洲精品成人福利在线| 欧美黄色成人真人视频| 亚洲男人天堂网在线视频| 亚洲深夜精品福利一区| 日本深夜福利视频在线| 国产女高清在线看免费观看| 欧美日韩久久精品一区二区| 色偷偷偷拍视频在线观看| 九七人妻一区二区三区| 欧美人妻免费一区二区三区|