解題思路:
在表示式括號配對時返回true,否則返回false。設定乙個鏈棧st,掃瞄表示式exp,遇到左括號時進棧,遇到右括號時若棧頂為左括號,則出棧,否則返回false。當表示式掃瞄完畢,棧為空時返回true,否則返回false。演算法如下:
#include#include#includeusing namespace std;
#define maxsize 60
typedef char elemtype;
typedef struct sqstack; //定義順序棧型別
//初始化棧
void initstack(sqstack *&s)
//銷毀棧
void destroystack(sqstack *&s)
//判空
bool stackempty(sqstack *s)
//進棧
bool push(sqstack *&s,elemtype e)
//出棧
bool pop(sqstack *&s,elemtype &e)
//取棧頂元素,注意,與出棧的差別僅僅是指標是否減一
bool gettop(sqstack *s,elemtype &e)
//判斷乙個表示式括號是否配對
bool match(string exp){
sqstack *st;
initstack(st); //初始化
char e;
int i=0;
bool match=true; //先假設它是配對的
while(i>exp;
bool flag;
//判斷表示式中的括號是否配對
flag=match(exp);
if(flag)
cout注意:輸入的時候請選擇英文狀態下的「()」輸入
順序棧判斷表示式的括號匹配
如下 include using namespace std typedef struct sqstack 順序棧定義 sqstack void initstack struct sqstack sqstack 初始化棧 intisempty struct sqstack sqstack 判斷棧是否...
表示式括號匹配(棧)
鏈結 假設乙個表示式有英文本母 小寫 運算子 和左右小 圓 括號構成,以 作為表示式的結束符。請編寫乙個程式檢查表示式中的左右圓括號是否匹配,若匹配,則返回 yes 否則返回 no 表示式長度小於255,左圓括號少於20個。一行 表示式 一行 yes 或 no 輸入 1複製 2 x y 1 x 輸出...
「鏈棧」判斷表示式中的括號是否正確配對
問題及 檔名稱 date.cpp 作 者 單昕昕 完成日期 2016年3月31日 版 本 號 v1.0 問題描述 假設表示式中允許包含3中括號 圓括號 中括號和大括號。設計乙個演算法採用 鏈棧 判斷表示式中的括號是否正確配對。程式輸入 乙個字串表示式。程式輸出 括號是否正確配對。include in...