問題及**:
main.cpp:
[cpp]view plain
copy
/*
檔名稱:字尾表示式.cpp
作 者: 陳朋
完成日期:2023年9月30日
版 本 號:v1.0
問題描述:
輸入描述:無
程式輸出:若干資料。
*/#include
#include
#include "sqstack.h"
#define maxop 7
struct
//設定運算子優先順序
lpri= ,,,,,,},
rpri= ,,,,,,};
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);
} int
main()
sqstack.h:
[cpp]view plain
copy
#ifndef sqstack_h_included
#define sqstack_h_included
#define maxsize 100
typedef
intelemtype;
typedef
struct
sqstack; //順序棧型別定義
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
sqstack.cpp:
[cpp]view plain
copy
#include
#include
#include "sqstack.h"
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)
//輸出棧
執行結果:
第五周專案5 字尾表示式
問題 檔名稱 專案5.cpp 作 者 陳晨 完成日期 2016年9月25日 版 本 號 v1.0 問題描述 利用sqstack.h中棧的基本運算,實現將乙個中綴表示式轉換為對應的字尾表達 式的演算法。例如,輸入 56 20 4 2 輸出字尾表示式 56 20 4 2 要求 在數字後加 輸入描述 字首...
第五周專案5 字尾表示式
檔名稱 專案5.cpp 作 者 高金豔 完成日期 2016年9月27日 版 本 號 v1.0 問題描述 利用sqstack.h中棧的基本運算,實現將乙個中綴表示式轉換為對應的字尾表達 式的演算法。例如,輸入 56 20 4 2 輸出字尾表示式 56 20 4 2 要求 在數字後加 輸入描述 字首表示...
第五周專案5 字尾表示式
問題 檔名稱 專案5.cpp 作 者 楊雅鑫 完成日期 2016年9月28日 版 本 號 v1.0 問題描述 利用sqstack.h中棧的基本運算,實現將乙個中綴表示式轉換為對應的字尾表達 式的演算法。例如,輸入 56 20 4 2 輸出字尾表示式 56 20 4 2 要求 在數字後加 輸入描述 字...