*all right reserved.
*檔名稱:字尾表示式.cpp
*完成日期;2023年9月29日
*版本號;v1.0
* *問題描述: 利用sqstack.h中棧的基本運算,實現將乙個中綴表示式轉換為對應的字尾表示式的演算法。
例如,輸入(56-20)/(4+2),輸出字尾表示式::56#20#-4#2#+/要求在數字後加#。
*輸入描述:表示式
*程式輸出:字尾表示式
*/
#include
#include "sqstack.h"
#include
intmain()
#include
#include
#include "sqstack.h"
intleftpri(
char
op)
//求左運算子op的優先順序
intrightpri(
char
op)
//求右運算子op的優先順序
bool
inop(
char
ch)
//判斷ch是否為運算子
intprecede(
char
op1,
char
op2)
//op1和op2運算子優先順序的比較結果
void
trans(
char
*exp,
char
postexp)
//將算術表示式exp轉換成字尾表示式postexp
postexp[i++]='#'
;
//用#標識乙個數值串結束
} else
//為運算子的情況
} } //while (*exp!='\0')
pop(opstack, ch);
while
(ch!=
'=')
//此時exp掃瞄完畢,退棧到'='為止
postexp[i]='\0'
;
//給postexp表示式新增結束標識
destroystack(opstack);
} void
initstack(sqstack *&s)
void
destroystack(sqstack *&s)
intstacklength(sqstack *s)
//返回棧中元素個數——棧長度
bool
stackempty(sqstack *s)
bool
push(sqstack *&s,elemtype e)
bool
pop(sqstack *&s,elemtype &e)
bool
gettop(sqstack *s,elemtype &e)
void
dispstack(sqstack *s)
//輸出棧
#ifndef sqstack_h_included
#define sqstack_h_included
#define maxop 7
#define maxsize 100
typedef
char
elemtype;
typedef
struct
sqstack;
struct
//設定運算子優先順序
lpri= ,,,,,,},
rpri= ,,,,,,};
//順序棧型別定義
void
trans(
char
*exp,
char
postexp);
intprecede(
char
op1,
char
op2);
bool
inop(
char
ch);
intrightpri(
char
op);
intleftpri(
char
op);
void
initstack(sqstack *&s);
//初始化棧
void
destroystack(sqstack *&s);
//銷毀棧
bool
stackempty(sqstack *s);
//棧是否為空
intstacklength(sqstack *s);
//返回棧中元素個數——棧長度
bool
push(sqstack *&s,elemtype e);
//入棧
bool
pop(sqstack *&s,elemtype &e);
//出棧
bool
gettop(sqstack *s,elemtype &e);
//取棧頂資料元素
void
dispstack(sqstack *s);
//輸出棧
#endif // sqstack_h_included
執行結果:
[cpp]view plain
copy
alt=
""/>
第五周 專案五 字尾表示式
問題描述及 煙台大學計控學院 作 者 邊朔 完成日期 2016年9月29日 問題描述 利用sqstack.h中棧的基本運算,實現將乙個中綴表示式轉換為對應的字尾表示式的演算法。例如,輸入 56 20 4 2 輸出字尾表示式 56 20 4 2 要求在數字後加 1 sqstack.h ifndef s...
第五周 專案五 字尾表示式
問題及描述 煙台大學計算機與控制工程學院 完成日期 2016年9月29號 問題描述 利用sqstack.h中棧的基本運算,實現將乙個中綴表示式轉換為對應的字尾表達 式的演算法。例如,輸入 56 20 4 2 輸出字尾表示式 56 20 4 2 要求 在數字後加 標頭檔案及功能函式詳見 第五周 專案一...
第五周 專案五 字尾表示式
檔名稱 第5周專案3 字尾表示式.cpp 作 者 滕健 完成日期 2016年9月29日 問題描述 利用sqstack.h中棧的基本運算,實現將乙個中綴表示式轉換為對應的字尾表達 式的演算法。例如,輸入 56 20 4 2 輸出字尾表示式 56 20 4 2 要求 在數字後加 輸入描述 字首表示式 程...