第六周 專案3 括號的匹配

2021-07-05 19:02:09 字數 1559 閱讀 6732

/* 

*檔名稱:括號的匹配.cpp 

*作    者:周潔 

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

*版 本 號: 

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

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

,則可以得出不配對的結論。(2)也可以設計乙個返回值為布林型的函式,引數為要配對的表示式,為乙個字串。

*輸入描述: 輸入表示式

*程式輸出: 「匹配正確」或「匹配錯誤」

*/ **:

(1)標頭檔案 s.h

#ifndef sqstack_h_included

#define sqstack_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);  //輸出棧

#endif // sqstack_h_included

(2)原始檔 s.cpp

#include

#include

#include "s.h"

bool stackempty(sqstack *s)

bool push(sqstack *&s,elemtype e)

bool pop(sqstack *&s,elemtype &e)

void initstack(sqstack *&s)

int main()

':pop(s,c);

if(c!='

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

printf("配對正確!!\n");

else

printf("配對錯誤!!\n");

return 0;

}執行結果:

知識點總結:

棧的應用,入棧和出棧。

第六周 專案3 括號的匹配

問題及 all right reserved.檔名稱 main.cpp 完成日期 2015年10月9日 版本號 v1.0 問題描述 假設表示式中允許三種括號 圓括號 方括號和大括號。編寫乙個演算法,判斷表示式中的各種左括號是否與右括號匹配。程式輸出 如,輸入2 3 4 2 8,輸出匹配正確 輸入2 ...

第六周 專案3 括號的匹配

all right reserved 檔名稱 sqstack.cpp 完成日期 2015年10月13日 17 41 版本號 v1.0 問題描述 匹配括號 include includeusing namespace std include sqstack.h int main pop s,c if ...

第六周專案3 括號的匹配

2015,煙台大學計算機與控制工程學院 檔名稱 第6周專案3 括號的匹配 作 者 楊惠娟 完成日期 2015年10月16日 版 本 號 v1.0 1 標頭檔案 define maxsize 100 typedef char elemtype typedef struct sqstack 順序棧型別定...