第六周 專案三 括號的匹配

2021-07-05 15:34:33 字數 1718 閱讀 1076

問題及**:

/*2015,煙台大學計算機與控制工程學院  

*完成日期:2023年10月7日

*問題描述:假設表示式中允許三種括號:圓括號、方括號和大括號。編寫乙個演算法,判斷表示式中的各種左括號是否與右括號匹配。

例如,輸入2+(3+4)*[2+-8],輸出匹配正確;輸入2+(3+4*[2)+-8,輸出匹配錯誤。

*/

#ifndef tou1_h_included

#define tou1_h_included

#define maxsize 100

typedef char elemtype;

typedef struct

sqstack; //順序棧型別定義

void initstack(sqstack *&s); //初始化棧

void destroystack(sqstack *&s); //銷毀棧

bool stackempty(sqstack *s); //棧是否為空

int stacklength(sqstack *s); //返回棧中元素個數——棧長度

bool push(sqstack *&s,elemtype e); //入棧

bool pop(sqstack *&s,elemtype &e); //出棧

bool gettop(sqstack *s,elemtype &e); //取棧頂資料元素

void dispstack(sqstack *s); //輸出棧

bool ismatch(char *st);

#endif // tou1_h_included

#include #include #include "tou1.h"

void initstack(sqstack *&s)

void destroystack(sqstack *&s)

int stacklength(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) //輸出棧

bool ismatch(char *st)

': pop(s,c);

if(c!='

}if(stackempty(s)&&d==1)

return true;

else

return false;

}

#include#include"tou1.h"

int main()

執行結果:

學習心得:

完成了本專案的任務。了解了括號的相關演算法內容。

第六周 專案三 括號的匹配

問題描述 假設表示式中允許三種括號 圓括號 方括號和大括號。編寫乙個演算法,判斷表示式中的各種左括號是否與右括號匹配。則可以得出不配對的結論。2 也可以設計乙個返回值為布林型的函式,引數為要配對的表示式,為乙個字串。1 主函式部分 include include sqstack.h int main...

第六周專案三 括號的匹配

檔名稱 kuohaodepipei.cpp 完成日期 2015年10月20日 版本號 vc 6.0 問題描述 括號的匹配 輸入描述 帶括號的算數 程式輸出 括號的匹配結果 ifndef sqstack h included define sqstack h included include defi...

第六周專案三 括號的匹配

檔名稱 專案3.cbp 作 者 孫立立 完成日期 2015年11月27日 版 本 號 v1.0 問題描述 假設表示式中允許三種括號 圓括號 方括號和大括號。編寫乙個演算法,判斷表示式中的各種左括號是否與右括號匹配。例如,輸入2 3 4 2 8,輸出匹配正確 輸入2 3 4 2 8,輸出匹配錯誤。輸入...