中綴轉字尾及字尾求值

2021-09-01 16:15:30 字數 806 閱讀 2098

【中綴表示式轉字尾表示式】

#include#include#include#include#include#include#includeusing namespace std;

const int maxn = 1000 + 10;

typedef char typename;

struct node ;

typedef struct node link;

static link *head;

int isempty()

void stackinit()

link * new(typename num, link *head)

void stackpush(typename num)

typename stackpop()

int main()

cout << endl;

} system("pause");

return 0;

}

【字尾表示式求值】

int main()

cout << stackpop() << endl;

} system("pause");

return 0;

}

另:

中綴轉字尾:

1.遇到a-z,a-z直接輸出。

2.遇到 ( 入棧(起到限定範圍的作用),遇到右括號彈出棧中左括號前(包括左括號)的所有運算子。

3.遇到運算子t,將棧中優先順序大於等於t的所有運算子出棧,直到棧空或者左括號為止。再將tt入棧。

c 實現中綴轉字首,中綴轉字尾,字尾表示式求值

思想 用兩個棧實現,規則如下 1 初始化兩個棧 運算子棧s1和儲存中間結果的棧s2 2 從右至左掃瞄中綴表示式 3 遇到運算元時,將其壓入s2 4 遇到運算子時,比較其與s1棧頂運算子的優先順序 4 1 如果s1為空,或棧頂運算子為右括號 則直接將此運算子入棧 4 2 否則,若優先順序比棧頂運算子的...

中綴轉字尾

include using namespace std define max 30 struct stack void initstack stack s char pop stack s void push stack s,char c char top stack s int copare ch...

中綴轉字尾

棧的特性 後進先出 last in first out 資料結構 中綴 9.11 3 1 5 分離數字與運算子 9.11 3 1 5 字尾 9.11 3 1 5 中綴轉字尾過程 當前元素為數字,輸出,作為字尾表示式的一部分 如果當前運算子,比棧頂運算子優先順序低 小於等於 時,將棧頂元素輸出,作為字...