逆波蘭式求值

2021-10-02 02:27:24 字數 2054 閱讀 1725

先擺上資源:

逆波蘭式求值

第一步、生成中綴表示式

第二步、中綴表示式轉換為字尾表示式

第三步、字尾表示式求值

本次實驗採用自主設計鏈式堆疊結構儲存資料

linkedstack儲存中綴及字尾表示式

#pragma once

#include using namespace std;

typedef struct sign ;

class linkedstack

;#include "linkedstack.h"

#include linkedstack::linkedstack()

linkedstack::~linkedstack()

void linkedstack::push(string str)

void linkedstack::pop()

string linkedstack::front()

int linkedstack::frontlevel()

bool linkedstack::isempty()

int linkedstack::compare(string str)

return level;

}void linkedstack::show()

cout << endl;

}

newstack儲存運算的中間結果

#pragma once

#include using namespace std;

struct sign

;class newstack

;#include "newstack.h"

newstack::newstack()

newstack::~newstack()

void newstack::push(double sign)

void newstack::pop()

double newstack::front()

第一步、由運算表示式生成中綴表示式

void rpn::generatenifix()      //生成字首表示式

nifix->push(temp);

} else

}if(str != "")

nifix->push(str);

linkedstack * tempstack = new linkedstack();

//字首表示式儲存逆轉

while (!nifix->isempty())

nifix = tempstack;

cout << "中綴表示式:";

nifix->show();

}

第二步、中綴表示式轉換為字尾表示式

void rpn::generatepostfix()    //生成字尾表示式

else

if (str == ")")

operatorstack.pop();

continue;

}if (operatorstack.isempty())

if (level <= operatorstack.frontlevel())

if (level > operatorstack.frontlevel())

}} while (!operatorstack.isempty())

//逆轉儲存

linkedstack * temp = new linkedstack();

while (!postfix->isempty())

postfix = temp;

cout << "字尾表示式:";

postfix->show();

}

第三步、計算字尾表示式

double rpn::calculate()        //計算字尾表示式

else

}} return st.front();

}

逆波蘭式與表示式求值

波蘭式 逆波蘭式是資料結構和編譯原理裡面提到的知識點,我們平時的表示式都是這樣的2 3 5 1 10 中綴表示式 這樣表示式易於閱讀和計算,但是對於計算機這樣就有點懵逼了。字首表示式 比如2 3 5 1 這個表示式的字首表示式為 2 3 5 1來表示 波蘭表示式 中綴序表示式 比如 2 3 5 1 ...

逆波蘭式與表示式求值

波蘭式 逆波蘭式是資料結構和編譯原理裡面提到的知識點,我們平時的表示式都是這樣的2 3 5 1 10 中綴表示式 這樣表示式易於閱讀和計算,但是對於計算機這樣就有點懵逼了。字首表示式 比如2 3 5 1 這個表示式的字首表示式為 2 3 5 1來表示 波蘭表示式 中綴序表示式 比如 2 3 5 1 ...

棧的運用 6 逆波蘭式求值

問題描述 對以逆波蘭式的表示式求值。問題分析 上一題是把中綴表示式程式設計逆波蘭式,要對逆波蘭的表示式的求解就更簡單些了。view code 1 include2 include3 define stack init size 100 4 define stackincrement 10 5 typ...